ขึ้นอยู่กับรูปแบบที่คุณต้องการให้แสดงวันที่
รูปแบบวันที่คงที่
หากคุณต้องการที่จะแสดงรูปแบบคงที่ซึ่งเป็นเหมือนกันสำหรับตำแหน่งที่ตั้งทั้งหมด (เช่นISO 8601สำหรับฟีด Atom) คุณควรใช้ทวิของdate
ตัวกรอง :
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
ซึ่งจะส่งคืนค่าตลอดเวลาในรูปแบบต่อไปนี้
2014-05-02T08: 55: 41Z
สตริงรูปแบบที่ยอมรับโดยdate
ตัวกรองเป็นเช่นเดียวกับที่คุณจะใช้สำหรับPHP ของdate()
ฟังก์ชั่น (ความแตกต่างเพียงอย่างเดียวคือเท่าที่ฉันรู้คุณไม่สามารถใช้ค่าคงที่กำหนดไว้ล่วงหน้าซึ่งสามารถใช้ในdate()
ฟังก์ชั่นPHP )
วันที่แปล (และครั้ง)
อย่างไรก็ตามเนื่องจากคุณต้องการแสดงในเบราว์เซอร์คุณอาจต้องการแสดงในรูปแบบที่มนุษย์สามารถอ่านได้ซึ่งแปลเป็นภาษาและตำแหน่งที่ตั้งของผู้ใช้ แทนที่จะใช้การแปลเป็นภาษาท้องถิ่นด้วยตัวคุณเองคุณสามารถใช้ส่วนขยายของ Intlสำหรับสิ่งนี้ (ซึ่งใช้ประโยชน์จากIntlDateFormatterของ PHP ) มันมีตัวกรองlocalizeddate
ซึ่งจะส่งออกวันที่และเวลาโดยใช้รูปแบบที่มีการแปล
localizeddate( date_format, time_format [, locale ] )
อาร์กิวเมนต์สำหรับlocalizeddate
:
date_format
: หนึ่งในสตริงรูปแบบ (ดูด้านล่าง)
time_format
: หนึ่งในสตริงรูปแบบ (ดูด้านล่าง)
locale
: (เป็นทางเลือก) ใช้สิ่งนี้เพื่อแทนที่โลแคลที่กำหนดค่าไว้ ปล่อยให้อาร์กิวเมนต์นี้ออกเพื่อใช้ภาษาเริ่มต้นซึ่งสามารถกำหนดค่าในการกำหนดค่าของ Symfony
(มีมากขึ้นดูเอกสารสำหรับรายการทั้งหมดของข้อโต้แย้งที่เป็นไปได้)
สำหรับdate_format
และtime_format
คุณสามารถใช้หนึ่งในสตริงต่อไปนี้:
'none'
หากคุณไม่ต้องการรวมองค์ประกอบนี้
'short'
สำหรับสไตล์ที่สั้นที่สุด (12/13/52 หรือ 15.00 น. ในภาษาอังกฤษ)
'medium'
สำหรับสไตล์กลาง (12 ม.ค. 1952 เป็นภาษาอังกฤษ)
'long'
สำหรับแบบยาว (12 มกราคม 2495 หรือ 3:30:32 น. ในภาษาอังกฤษ)
'full'
สำหรับสไตล์ที่ระบุไว้อย่างสมบูรณ์ (อังคาร 12 เมษายน, 1952 AD หรือ 3:30:42 น. PST ในภาษาอังกฤษ)
ตัวอย่าง
ตัวอย่างเช่นหากคุณต้องการแสดงวันที่ในรูปแบบที่เทียบเท่าให้February 6, 2014 at 10:52 AM
ใช้บรรทัดต่อไปนี้ในเทมเพลต Twig ของคุณ:
{{ game.gameDate|localizeddate('long', 'short') }}
อย่างไรก็ตามหากคุณใช้ภาษาอื่นผลลัพธ์จะถูกแปลเป็นภาษาท้องถิ่นสำหรับภาษานั้น:
6 februari 2014 10:52
สำหรับnl
สถานที่;
6 février 2014 10:52
สำหรับfr
สถานที่;
6. Februar 2014 10:52
สำหรับde
สถานที่; เป็นต้น
อย่างที่คุณเห็นlocalizeddate
ไม่เพียง แต่แปลชื่อเดือน แต่ยังใช้สัญลักษณ์ท้องถิ่น สัญกรณ์ภาษาอังกฤษใส่วันที่หลังจากเดือนที่สัญกรณ์ดัตช์, ฝรั่งเศสและเยอรมันวางไว้ก่อนเดือน ชื่อเดือนภาษาอังกฤษและภาษาเยอรมันเริ่มต้นด้วยตัวอักษรตัวพิมพ์ใหญ่ในขณะที่ชื่อเดือนดัตช์และฝรั่งเศสเป็นตัวพิมพ์เล็ก และวันที่ภาษาเยอรมันจะมีจุดต่อท้าย
การติดตั้ง / การตั้งค่าภาษา
คำแนะนำในการติดตั้งสำหรับส่วนขยาย Intl สามารถพบได้ในคำตอบแยกนี้
{{ game.gameDate|date('Y-m-d H:i:s') }}
สำหรับวันที่และเวลา ฉันมีปัญหาในการค้นหาตัวละครเป็นเวลาหลายนาที