Jadi setelah menghabiskan lebih banyak waktu daripada yang saya akui mengakui melihat ke dalam ini, saya telah datang dengan dua solusi untuk ini.
Solusi 1
Salah satu cara untuk melakukannya adalah dengan fungsi tanggal yang disebutkan darol100 dalam jawabannya. Mengubah contohnya untuk kasus saya, dalam node--article.html.twig
file saya , saya mengubah:
{% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
untuk
{% set createdDate = node.getCreatedTime|date('j F Y') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
Keuntungan dari pendekatan ini adalah mudah dan cepat. Kerugiannya adalah saya tidak menggunakan sistem format tanggal bawaan Drupal.
Solusi 2
Untuk menggunakan sistem format tanggal Drupal, saya pertama kali membuat format kustom saya di admin/config/regional/date-time
. Kemudian saya edit node--article.html.twig
sebagai berikut:
{% set createdDate = node.getCreatedTime|format_date('my_custom_format') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}
Ini mengasumsikan saya menamai format kustom saya " Format Kustom Saya ", yang menghasilkan nama mesin my_custom_format
.
Sementara solusi ini membutuhkan langkah ekstra, saya merasa ini adalah cara yang lebih Drupal untuk melakukannya.
Saya mempelajarinya di halaman ini tentang Filter Ranting Drupal .
<?php print format_date($node->created, 'custom', 'm/d/y'); ?>
.Saya lebih menyukai solusi Chris 2. Seperti yang dikatakannya, ini lebih merupakan cara drupal ... tapi itu belum merupakan pilihan terbaik.
format_date () telah usang dan akan dihapus sebelum Drupal 9 ... artinya suatu hari, Anda akan melakukan pembaruan drupal dan ini akan rusak.
Alih-alih, lebih baik melakukannya di file tema. Anda dalam fungsi preprocess.
sumber
Pengamatan tentang apa yang dikatakan Duke:
Ya, fungsi format Drupal format_date () didefinisikan dalam inti / include / common.inc , pada kenyataannya, sudah usang. Tetapi, ketika Anda menggunakan filter ranting format_date () Anda TIDAK memanggil fungsi Drupal, alih-alih Anda menggunakan filter ranting yang didefinisikan oleh Drupal di TwigExtension :: getFilters () , dan filter ini memanggil DateFormatter :: format () .
Oleh karena itu, menggunakan filter ranting format_date () aman dan solusi 2 Chris baik-baik saja.
sumber
Dimungkinkan juga untuk menemukan format tanggal yang sudah digunakan, dan hanya mengubahnya di UI. Bandingkan saja apa yang Anda lihat di halaman dengan format tanggal di
admin/config/regional/date-time/
Jika Anda mengubah mis. "Default medium date" itu akan mengubah tanggal menggunakan format ini tanpa menyentuh file templat / ranting.
Format tanggal juga dapat diatur / diterjemahkan per bahasa untuk pengaturan multi bahasa.
sumber
Anda dapat membuat bidang Submitted By Anda sendiri dengan menggunakan Display Suite untuk membuat Bidang Token.
Di Drupal 8 / struktur / ds / bidang
Kemudian tambahkan bidang menggunakan html dan token seperti ...
sumber
Anda dapat menyesuaikan format dalam node.html.twig seperti ini:
sumber
Anda dapat memiliki semua format PHP untuk Tanggal dan Waktu
sumber
Untuk memastikan bahwa saya hanya mengubah karakter tanggal tetapi tidak pada elemen HTML di sekitarnya, saya menggunakan kait berikut:
Ganti
[theme_name]
dengan nama tema Anda danhtml_date
dengan format waktu yang Anda inginkan, salah satunya yang Anda temukan di bawah/admin/config/regional/date-time
.sumber
Saya menggunakan kode berikut untuk simpul - artikel - full.html.twig:
sumber