Entonces, después de pasar más tiempo del que me gustaría admitir que investigé esto, se me ocurrieron dos soluciones.
Solución 1
Una forma de hacerlo es con la función de fecha que darol100 mencionó en su respuesta. Modificando su ejemplo para mi caso, en mi node--article.html.twig
archivo, cambié:
{% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
a
{% set createdDate = node.getCreatedTime|date('j F Y') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
La ventaja de este enfoque es que es fácil y rápido. La desventaja es que no estoy usando el sistema de formato de fecha incorporado de Drupal.
Solución 2
Para usar el sistema de formato de fecha de Drupal, primero creé mi formato personalizado en admin/config/regional/date-time
. Luego edité node--article.html.twig
lo siguiente:
{% set createdDate = node.getCreatedTime|format_date('my_custom_format') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
Esto supone que llamé a mi formato personalizado " Mi formato personalizado ", que da como resultado el nombre del equipo my_custom_format
.
Si bien esta solución requiere un paso adicional, creo que es la forma más drupal de hacerlo.
Lo aprendí en esta página sobre los filtros Twig de Drupal .
<?php print format_date($node->created, 'custom', 'm/d/y'); ?>
.Estoy más por la solución de Chris 2. Como él dice, ES más la forma de drupal ... pero aún no es la mejor opción.
format_date () ha quedado en desuso y se eliminará antes de Drupal 9 ... lo que significa que un día, harás una actualización de drupal y esto se romperá.
En cambio, es mejor hacer esto en su archivo .theme en una función de preproceso.
fuente
Una observación sobre lo que dijo Duke:
Sí, la función Drupal format_date () definida en core / includes / common.inc es, de hecho, obsoleta. Pero cuando usa el filtro de ramita format_date () NO está llamando a esa función Drupal, en lugar de eso está usando el filtro de ramita definido por Drupal en TwigExtension :: getFilters () , y este filtro llama a DateFormatter :: format () .
Por lo tanto, usar el filtro twig format_date () es seguro y la solución 2 de Chris está bien.
fuente
También es posible encontrar el formato de fecha que ya está en uso y simplemente cambiarlo en la interfaz de usuario. Simplemente compare lo que ve en la página con los formatos de fecha en
admin/config/regional/date-time/
Si cambia, por ejemplo, "Fecha media predeterminada", cambiará las fechas usando este formato sin tocar ningún archivo de plantilla / ramita.
Los formatos de fecha también se pueden configurar / traducir por idioma para la configuración en varios idiomas.
fuente
Puede crear su propio campo Enviado por utilizando Display Suite para crear un campo Token.
En Drupal 8 / structure / ds / fields
Luego agregue un campo usando html y tokens como ...
fuente
Puede personalizar el formato en node.html.twig de esta manera:
fuente
Puede tener todos los formatos PHP para fecha y hora
fuente
Para asegurarme de cambiar solo los caracteres de la fecha pero no los elementos HTML que lo rodean, utilizo el siguiente enlace:
Reemplácelo
[theme_name]
con el nombre de su tema yhtml_date
con el formato de hora deseado, uno de los que encontrará debajo/admin/config/regional/date-time
.fuente
Usé el siguiente código para node - article - full.html.twig:
fuente