Então, depois de passar mais tempo do que gostaria de admitir, resolvi duas soluções para isso.
Solução 1
Uma maneira de fazer isso é com a função de data que Darol100 mencionou em sua resposta. Modificando o exemplo dele para o meu caso, no meu node--article.html.twig
arquivo, mudei:
{% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
para
{% set createdDate = node.getCreatedTime|date('j F Y') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
A vantagem dessa abordagem é que é fácil e rápido. A desvantagem é que não estou usando o sistema de formato de data interno do Drupal.
Solução 2
Para usar o sistema de formato de data do Drupal, criei meu formato personalizado em admin/config/regional/date-time
. Então editei da node--article.html.twig
seguinte maneira:
{% set createdDate = node.getCreatedTime|format_date('my_custom_format') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
Isso pressupõe que eu nomeei meu formato personalizado " Meu formato personalizado ", o que resulta no nome da máquina my_custom_format
.
Embora essa solução exija uma etapa extra, sinto que é a maneira mais Drupal de fazer isso.
Eu aprendi sobre isso nesta página sobre os filtros Twig do Drupal .
<?php print format_date($node->created, 'custom', 'm/d/y'); ?>
.Sou a favor da solução 2. de Chris. Como ele diz, é mais o caminho drupal ... mas ainda não é a melhor opção.
format_date () foi descontinuado e será removido antes do Drupal 9 ... o que significa que um dia você fará uma atualização do drupal e isso será interrompido.
Em vez disso, é melhor fazer isso no seu arquivo .theme em uma função de pré-processo.
fonte
Uma observação sobre o que Duke disse:
Sim, a função Drupal format_date () definida no core / includes / common.inc está, de fato, obsoleta. Mas, quando você usa o filtro twig format_date (), NÃO está chamando essa função Drupal, em vez de usar o filtro twig definido por Drupal em TwigExtension :: getFilters () , e esse filtro chama DateFormatter :: format () .
Portanto, o uso do filtro de formato format_date () é seguro e a solução 2 de Chris está correta .
fonte
Também é possível definir o formato da data já em uso e apenas alterá-lo na interface do usuário. Basta comparar o que você vê na página com os formatos de data em
admin/config/regional/date-time/
Se você alterar, por exemplo, "Data média padrão", as datas serão alteradas usando este formato sem tocar em nenhum arquivo de modelo / galho.
Os formatos de data também podem ser definidos / traduzidos por idioma para a configuração de vários idiomas.
fonte
Você pode criar seu próprio campo Enviado por usando o Display Suite para criar um campo Token.
No Drupal 8 / estrutura / ds / campos
Em seguida, adicione um campo usando html e tokens como ...
fonte
Você pode personalizar o formato em node.html.twig assim:
fonte
Você pode ter todos os formatos PHP para Data e Hora
fonte
Para ter certeza de alterar apenas os caracteres da data, mas não os elementos HTML circundantes, use o seguinte gancho:
Substitua
[theme_name]
pelo nome do seu tema ehtml_date
pelo formato de horário desejado, um dos que você encontra abaixo/admin/config/regional/date-time
.fonte
Usei o seguinte código para o node - article - full.html.twig:
fonte