الفرق بين المراجعتين لصفحة: «Twig/date»

من موسوعة حسوب
إدخال 2.1 تمام المحتوى وانظر أيضًا والتصانيف والمصادر.
طلا ملخص تعديل
 
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 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">
__TOC__
محدد الصيغة يشبه ذلك المدعوم في [https://secure.php.net/date <code>date</code>] إلا حين تكون البيانات الممرشحة من نوع [https://secure.php.net/DateInterval <code>DateInterval</code>]، إذ يجب أن تتوافق الصيغة حينها مع [https://secure.php.net/DateInterval.format <code>DateInterval::format</code>]، ويقبل المرشح <code>date</code> السلاسل النصية التي يجب أن تكون بصيغة تدعمها دالة [https://secure.php.net/strtotime <code>strtotime</code>]، ونسخ [https://secure.php.net/DateTime <code>DateTime</code>] أو نسخ [https://secure.php.net/DateInterval <code>DateInterval</code>]. فمثلًا، يجب ترشيح كلمة now من أجل عرض التاريخ الحالي:<syntaxhighlight lang="twig">
{{ "now"|date("m/d/Y") }}
{{ "now"|date("m/d/Y") }}


سطر 11: سطر 12:
{{ post.published_at|date("F jS \\a\\t g:ia") }}
{{ post.published_at|date("F jS \\a\\t g:ia") }}


</syntaxhighlight>إذا كانت القيمة الممررة إلى الفلتر <code>date</code> هي <code>null</code> فستعيد التاريخ الحالي افتراضيًا، أما إذا أردنا سلسلة نصية فارغة بدلًا من التاريخ الحالي فاستخدم العامل الثلاثي:<syntaxhighlight lang="twig">
</syntaxhighlight>إذا كانت القيمة الممررة إلى المرشح <code>date</code> هي <code>null</code> فستعيد التاريخ الحالي افتراضيًا، أما إذا أردنا سلسلة نصية فارغة بدلًا من التاريخ الحالي فاستخدم العامل الثلاثي:<syntaxhighlight lang="twig">
{{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }}
{{ 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">
</syntaxhighlight>إذا لم يتم توفير صيغة فسيستخدم Twig الصيغة الافتراضية: <code>F j, Y H:i</code>، ويمكن تغييرها باستدعاء التابع  <code>setDateFormat()‎</code> على نسخة التوسيع <code>core</code>، وسيكون أول وسيط هو الصيغة الافتراضية للتواريخ والثاني للفترات الزمنية، انظر:<syntaxhighlight lang="php">
$twig = new \Twig\Environment($loader);
$twig = new \Twig\Environment($loader);
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setDateFormat('d/m/Y', '%d days');
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setDateFormat('d/m/Y', '%d days');
سطر 24: سطر 25:
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}


</syntaxhighlight>إذا كان التاريخ كائنَ DateTime وكنت تريد الحفاظ على منطقته الزمنية فمرر <code>false</code> كقيمة للمنطقة الزمنية:<syntaxhighlight lang="twig">
</syntaxhighlight>إذا كان التاريخ كائنَ <code>DateTime</code> وكنت تريد الحفاظ على منطقته الزمنية فمرر <code>false</code> كقيمة للمنطقة الزمنية:<syntaxhighlight lang="twig">
{{ post.published_at|date("m/d/Y", false) }}
{{ post.published_at|date("m/d/Y", false) }}


</syntaxhighlight>يمكن تعيين المنطقة الزمنية الافتراضية تعيينًا عامًا (globally) باستدعاء <code>setTimezone()‎</code>: <syntaxhighlight lang="twig">
</syntaxhighlight>يمكن تعيين المنطقة الزمنية الافتراضية تعيينًا عامًا globally باستدعاء <code>setTimezone()‎</code>: <syntaxhighlight lang="php">
$twig = new \Twig\Environment($loader);
$twig = new \Twig\Environment($loader);
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone('Europe/Paris');
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone('Europe/Paris');
سطر 37: سطر 38:


== انظر أيضًا ==
== انظر أيضًا ==
* [[Twig/intro|مقدمة عن محرك القوالب Twig.]]
* [[Twig/intro|مقدمة عن محرك القوالب Twig]]
* [[Twig/advanced|توسيع Twig.]]
* [[Twig/advanced|توسيع Twig]]
* [[Twig/internals|المكونات الداخلية لـ Twig.]]
* [[Twig/internals|المكونات الداخلية لـ Twig]]
* [[Twig/tags|الوسوم في Twig]]
* [[Twig/tags|الوسوم في Twig]]
* [[ Twig/filters|الفلاتر في Twig]]
* [[ Twig/filters|المرشحات في Twig]]
== المصادر ==
== المصادر ==
* [https://twig.symfony.com/doc/3.x/filters/data_uri.html صفحة الفلتر data_uri من توثيق Twig الرسمي.]
* [https://twig.symfony.com/doc/3.x/filters/date.html صفحة المرشح date من توثيق Twig الرسمي]


[[تصنيف:Twig]]
[[تصنيف:Twig]]
[[تصنيف:Twig Filters]]
[[تصنيف:Twig Filters]]

المراجعة الحالية بتاريخ 14:52، 11 مايو 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: المنطقة الزمنية للتاريخ.

انظر أيضًا

المصادر