الفرق بين المراجعتين لصفحة: «Twig/date»
أسامه-دمراني (نقاش | مساهمات) 1.0: إضافة عنوان الصفحة | 2.0 محتوى أولي للصفحة |
أسامه-دمراني (نقاش | مساهمات) إدخال 2.1 تمام المحتوى وانظر أيضًا والتصانيف والمصادر. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الفلتر date في Twig}}</noinclude> | <noinclude>{{DISPLAYTITLE: الفلتر date في Twig}}</noinclude> | ||
الفلتر <code>date</code> | يغير الفلتر <code>date</code> صياغة التاريخ إلى الصيغة المعطاة: | ||
<syntaxhighlight lang="twig"> | <syntaxhighlight lang="twig"> | ||
{{ post.published_at|date("m/d/Y") }} | {{ post.published_at|date("m/d/Y") }} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
محدد الصيغة يشبه ذلك المدعوم في [https://secure.php.net/date date] إلا حين تكون البيانات المفلترة من نوع [https://secure.php.net/DateInterval DateInterval]، إذ يجب أن تتوافق الصيغة حينها مع [https://secure.php.net/DateInterval.format DateInterval::format]، ويقبل الفلتر <code>date</code> السلاسل النصية التي يجب أن تكون بصيغة تدعمها دالة [https://secure.php.net/strtotime strtotime]، ونسخ [https://secure.php.net/DateTime DateTime] أو نسخ [https://secure.php.net/DateInterval DateInterval]. فمثلًا، يجب فلترة كلمة now من أجل عرض التاريخ الحالي:<syntaxhighlight lang="twig"> | |||
{{ "now"|date("m/d/Y") }} | |||
</syntaxhighlight>استخدم <code>\\</code> لتهريب الكلمات والمحارف في صيغة التاريخ، وذلك أمام كل محرف:<syntaxhighlight lang="twig"> | |||
{{ post.published_at|date("F jS \\a\\t g:ia") }} | |||
</syntaxhighlight>إذا كانت القيمة الممررة إلى الفلتر <code>date</code> هي <code>null</code> فستعيد التاريخ الحالي افتراضيًا، أما إذا أردنا سلسلة نصية فارغة بدلًا من التاريخ الحالي فاستخدم العامل الثلاثي:<syntaxhighlight lang="twig"> | |||
{{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }} | |||
</syntaxhighlight>إذا لم يتم توفير صيغة فسيستخدم Twig الصيغة الافتراضية: <code>F j, Y H:i</code>، ويمكن تغييرها باستدعاء التابع <code>setDateFormat()</code> على نسخة التوسيع <code>core</code>، وسيكون أول وسيط هو الصيغة الافتراضية للتواريخ والثاني للفترات الزمنية، انظر:<syntaxhighlight lang="twig"> | |||
$twig = new \Twig\Environment($loader); | |||
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setDateFormat('d/m/Y', '%d days'); | |||
</syntaxhighlight> | |||
== المنطقة الزمنية == | |||
يُعرض التاريخ افتراضيًا بتطبيق المنطقة الزمنية الافتراضية -المحددة في php.ini أو المصرح عنها في Twig، انظر أدناه-، لكن تستطيع تخطيها بتحديد منطقة زمنية صراحة:<syntaxhighlight lang="twig"> | |||
{{ post.published_at|date("m/d/Y", "Europe/Paris") }} | |||
</syntaxhighlight>إذا كان التاريخ كائنَ DateTime وكنت تريد الحفاظ على منطقته الزمنية فمرر <code>false</code> كقيمة للمنطقة الزمنية:<syntaxhighlight lang="twig"> | |||
{{ post.published_at|date("m/d/Y", false) }} | |||
</syntaxhighlight>يمكن تعيين المنطقة الزمنية الافتراضية تعيينًا عامًا (globally) باستدعاء <code>setTimezone()</code>: <syntaxhighlight lang="twig"> | |||
$twig = new \Twig\Environment($loader); | |||
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone('Europe/Paris'); | |||
</syntaxhighlight> | |||
==الوسائط== | ==الوسائط== | ||
* <code> | * <code>format</code>: صيغة التاريخ. | ||
* <code> | * <code>timezone</code>: المنطقة الزمنية للتاريخ. | ||
== انظر أيضًا == | == انظر أيضًا == |
مراجعة 02:53، 28 أبريل 2021
يغير الفلتر date
صياغة التاريخ إلى الصيغة المعطاة:
{{ post.published_at|date("m/d/Y") }}
محدد الصيغة يشبه ذلك المدعوم في date إلا حين تكون البيانات المفلترة من نوع DateInterval، إذ يجب أن تتوافق الصيغة حينها مع DateInterval::format، ويقبل الفلتر date
السلاسل النصية التي يجب أن تكون بصيغة تدعمها دالة strtotime، ونسخ DateTime أو نسخ DateInterval. فمثلًا، يجب فلترة كلمة now من أجل عرض التاريخ الحالي:
{{ "now"|date("m/d/Y") }}
استخدم \\
لتهريب الكلمات والمحارف في صيغة التاريخ، وذلك أمام كل محرف:
{{ post.published_at|date("F jS \\a\\t g:ia") }}
إذا كانت القيمة الممررة إلى الفلتر date
هي null
فستعيد التاريخ الحالي افتراضيًا، أما إذا أردنا سلسلة نصية فارغة بدلًا من التاريخ الحالي فاستخدم العامل الثلاثي:
{{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }}
إذا لم يتم توفير صيغة فسيستخدم Twig الصيغة الافتراضية: F j, Y H:i
، ويمكن تغييرها باستدعاء التابع setDateFormat()
على نسخة التوسيع core
، وسيكون أول وسيط هو الصيغة الافتراضية للتواريخ والثاني للفترات الزمنية، انظر:
$twig = new \Twig\Environment($loader);
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setDateFormat('d/m/Y', '%d days');
المنطقة الزمنية
يُعرض التاريخ افتراضيًا بتطبيق المنطقة الزمنية الافتراضية -المحددة في php.ini أو المصرح عنها في Twig، انظر أدناه-، لكن تستطيع تخطيها بتحديد منطقة زمنية صراحة:
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}
إذا كان التاريخ كائنَ DateTime وكنت تريد الحفاظ على منطقته الزمنية فمرر false
كقيمة للمنطقة الزمنية:
{{ post.published_at|date("m/d/Y", false) }}
يمكن تعيين المنطقة الزمنية الافتراضية تعيينًا عامًا (globally) باستدعاء setTimezone()
:
$twig = new \Twig\Environment($loader);
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone('Europe/Paris');
الوسائط
format
: صيغة التاريخ.timezone
: المنطقة الزمنية للتاريخ.