Nachdem ich mehr Zeit aufgewendet habe, als ich zugeben möchte, habe ich zwei Lösungen dafür gefunden.
Lösung 1
Eine Möglichkeit ist die in seiner Antwort erwähnte Datumsfunktion von darol100. Als ich sein Beispiel für meinen Fall in meiner node--article.html.twig
Datei änderte, änderte ich:
{% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
zu
{% set createdDate = node.getCreatedTime|date('j F Y') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
Der Vorteil dieses Ansatzes ist, dass es einfach und schnell ist. Der Nachteil ist, dass ich nicht das in Drupal integrierte Datumsformatsystem verwende.
Lösung 2
Um das Datumsformatsystem von Drupal zu verwenden, habe ich zuerst mein benutzerdefiniertes Format unter erstellt admin/config/regional/date-time
. Dann habe ich node--article.html.twig
wie folgt bearbeitet :
{% set createdDate = node.getCreatedTime|format_date('my_custom_format') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
Dies setzt voraus, dass ich mein benutzerdefiniertes Format " My Custom Format " ( Mein benutzerdefiniertes Format ) genannt habe, woraus der Computername resultiert my_custom_format
.
Obwohl diese Lösung einen zusätzlichen Schritt erfordert, ist sie meiner Meinung nach eher Drupal-tauglich.
Ich habe auf dieser Seite über Drupals Zweigfilter davon erfahren .
<?php print format_date($node->created, 'custom', 'm/d/y'); ?>
.Ich bin mehr für Chris 'Lösung 2. Wie er sagt, ist es eher drupal ... aber es ist noch nicht die beste Option.
format_date () ist veraltet und wird vor Drupal 9 entfernt ... was bedeutet, dass Sie eines Tages ein Drupal-Update durchführen werden, das nicht mehr funktioniert.
Stattdessen ist es besser, dies in Ihrer .theme-Datei in einer Vorverarbeitungsfunktion zu tun.
quelle
Eine Bemerkung über das, was Duke gesagt hat:
Ja, die in core / includes / common.inc definierte Drupal-Funktion format_date () ist in der Tat veraltet. Wenn Sie jedoch den Zweigfilter format_date () verwenden , rufen Sie diese Drupal-Funktion NICHT auf, stattdessen verwenden Sie den von Drupal in TwigExtension :: getFilters () definierten Zweigfilter , und dieser Filter ruft DateFormatter :: format () auf .
Daher ist die Verwendung des Zweigfilters format_date () sicher und Chris 'Lösung 2 ist in Ordnung.
quelle
Es ist auch möglich, das bereits verwendete Datumsformat zu definieren und dies einfach in der Benutzeroberfläche zu ändern. Vergleichen Sie einfach das, was Sie auf der Seite sehen, mit den Datumsformaten in
admin/config/regional/date-time/
Wenn Sie z. B. "Standard mittleres Datum" ändern, werden die Daten in diesem Format geändert, ohne dass Vorlagen- / Zweigdateien berührt werden.
Für die Einrichtung mehrerer Sprachen können Datumsformate auch pro Sprache eingestellt / übersetzt werden.
quelle
Sie können mithilfe der Display Suite ein eigenes Feld "Übergeben von" erstellen, um ein Token-Feld zu erstellen.
In Drupal 8 / structure / ds / fields
Dann fügen Sie ein Feld mit HTML und Token wie ...
quelle
Sie können das Format in node.html.twig folgendermaßen anpassen:
quelle
Sie können alle Formate PHP für Datum und Uhrzeit haben
quelle
Um sicherzugehen, dass ich nur die Zeichen des Datums ändere, aber keine umgebenden HTML-Elemente, benutze ich den folgenden Haken:
Ersetzen Sie
[theme_name]
durch den Namen Ihres Themas undhtml_date
durch das gewünschte Zeitformat, eines davon finden Sie unter/admin/config/regional/date-time
.quelle
Ich habe den folgenden Code für node - article - full.html.twig verwendet:
quelle