Score:1

ดูเหมือนจะไม่สามารถจัดรูปแบบวันที่เป็นกิ่งจาก UTC ไปยังตำแหน่งที่ตั้งของผู้ใช้

ธง in

ฉันกำลังพยายามจัดรูปแบบฟิลด์วันที่จากประเภทเนื้อหาเหตุการณ์ที่ฉันสร้างขึ้น เพื่อให้ฉันสามารถส่งวันที่ไปยังเครื่องมือส่งออกกิจกรรมที่สร้างกิจกรรมในปฏิทิน เช่น Google, Apply, Yahoo และ Microsoft ฉันใช้ ปฏิทิน_ลิงค์ ซึ่งใช้ฟิลด์สองสามฟิลด์และวันที่เพื่อสร้างกิจกรรมในปฏิทินที่เหมาะสม

{# calendar_link(link_type, title, start_date, end_date, all_day, Description, Location) #}
{% set linkGoogle = calendar_link("google", node.field_event_title.value|raw|replace({'[html format="full_html" different_values="0"]': "", '[/html]': "" })|striptags, วันที่(dateStartField), วันที่(dateEndField), เท็จ, "", "") %}
{% set linkICS = calendar_link("ics", node.field_event_title.value|raw|replace({'[html format="full_html" different_values="0"]': "", '[/html]': "" })|striptags, วันที่(dateStartField), วันที่(dateEndField), เท็จ, "", "") %}
{% set linkYahoo = calendar_link("yahoo", node.field_event_title.value|raw|replace({'[html format="full_html" different_values="0"]': "", '[/html]': "" })|striptags, วันที่(dateStartField), วันที่(dateEndField), เท็จ, "", "") %}
{% set linkWebOutlook = calendar_link("webOutlook", node.field_event_title.value|raw|replace({'[html format="full_html" different_values="0"]': "", '[/html]': "" })|striptags, วันที่(dateStartField), วันที่(dateEndField), เท็จ, "", "") %}

มันใช้งานได้ดี อย่างไรก็ตาม เมื่อฉันคว้าฟิลด์วันที่ มันอยู่ใน UTC ไม่ใช่โลแคลของผู้ใช้ ฉันเข้าใจว่าทำไม เนื่องจาก Drupal เก็บวันที่เป็น UTC ในฐานข้อมูล (หมายเหตุ: node.field_event_start_date.value เท่ากับ dateStartField เนื่องจากฉันเพิ่งจัดรูปแบบง่ายๆ ด้วย twig)

{{ node.field_event_start_date.value }}

ฉันพบคำแนะนำบางอย่าง เช่น การใช้ส่วนขยาย Intl ของ Twig ซึ่งจะให้ตัวกรอง Twig วันที่ที่แปลเป็นภาษาท้องถิ่น หรือรูปแบบวันที่เวลา (ฉันคิดว่าวันที่ที่แปลเป็นภาษาท้องถิ่นเป็นเวอร์ชันเก่า) แต่เมื่อฉันใช้ผู้แต่งเพื่อติดตั้งส่วนขยายของกิ่งไม้ (https://twig.symfony.com/doc/3.x/filters/format_datetime.html):

นักแต่งเพลงต้องการ twig/intl-extra
นักแต่งเพลงต้องการกิ่งไม้ / มัดพิเศษ

มันไม่ทำงาน Twig ไม่รู้จักตัวกรอง ผมได้ลองหาข้อมูลจาก ที่นี่. ฉันเคยเห็นผู้อื่นอ้างถึงแนวคิดของการเปิดใช้งานส่วนขยาย Twig สำหรับโครงการ Symfony แต่ฉันไม่แน่ใจว่าจะอยู่ที่ใดในแบ็กเอนด์ของไซต์ Drupal ดูภาพที่แนบมาสำหรับข้อผิดพลาดของตัวกรอง:

ป้อนคำอธิบายรูปภาพที่นี่

โค้ดที่มี format_datetime ที่ควรจะคำนึงถึงโลแคลของผู้ใช้ (On https://twig.symfony.com/doc/3.x/filters/format_datetime.html การใช้ค่าเริ่มต้นของ format_datetime ควรคำนึงถึงสถานที่ปัจจุบันด้วย):

<span>Calendar Start Date TimeZone Format: {{ calStartDate|format_datetime }}</span>

ฉันเกือบจะหมดปัญญาในการพยายามจัดรูปแบบวันที่ UTC ของฉันให้เป็นวันที่ที่แปลเป็นภาษาท้องถิ่นผ่าน Twig ที่ฉันสามารถป้อนลงในเครื่องมือส่งออกลิงก์ปฏิทินได้ ฉันรู้ว่าฉันสามารถจัดรูปแบบวันที่เป็นเขตเวลาเฉพาะได้ด้วยตัวกรอง Twig พื้นฐาน แต่ฉันไม่สามารถตรวจสอบได้ว่าโลแคลของผู้ใช้คืออะไร จึงทำให้วิธีนี้เป็นโมฆะเนื่องจากโลแคลจะเป็นไดนามิกและไม่คงที่

มีแนวทางที่ดีกว่านี้หรือไม่? ฉันควรสร้าง php hook ที่แก้ไขฟิลด์วันที่สำหรับ node--event.html.twig หรือไม่ สิ่งนี้จะเหมาะสมหรือไม่? ฉันไม่คิดว่าจะต้องสร้างโมดูลสำหรับปัญหาง่ายๆ นี้ แต่ฉันไม่แน่ใจ

แจ้งให้เราทราบหากคุณมีโอกาสในการขายหรือวิธีแก้ไขปัญหาใดๆ ของฉัน

ขอบคุณ,
แทนเนอร์

Score:0
ธง cn

เป็นการยากที่จะจัดการรูปแบบวันที่ Drupal UTC ด้วยไลบรารีที่ไม่ใช่ Drupal รับการประทับเวลา Unix:

{{ node.field_date.date.gettimestamp }}

หรือจัดรูปแบบฟิลด์ Drupal ให้ดีขึ้นด้วยตัวจัดรูปแบบฟิลด์ Drupal ใน Twig คุณสามารถใช้ |ดู ตัวกรองของ ทวิก ทวิค:

{{ node.field_date[0]|ดู }}

คุณสามารถเพิ่มอาร์เรย์เป็นอาร์กิวเมนต์สำหรับการตั้งค่าตัวจัดรูปแบบฟิลด์ แม้ว่าคุณจะต้องการแก้ปัญหานี้ในโค้ดเท่านั้น ให้กำหนดค่าตัวจัดรูปแบบฟิลด์ใน UI ชั่วคราวและส่งออกการกำหนดค่าที่เป็นผลลัพธ์ แล้วคุณรู้การตั้งค่าสำหรับ |ดู(). ดู https://git.drupalcode.org/project/twig_tweak/-/blob/3.x/docs/cheat-sheet.md#view

คุณสามารถทำสิ่งต่าง ๆ ได้มากขึ้นใน PHP ดู วิธีรับสตริงวันที่ที่จัดรูปแบบจากวัตถุ DateTimeItem

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา