الفرق بين المراجعتين ل"Twig/date"
أسامه-دمراني (نقاش | مساهمات) ط |
جميل-بيلوني (نقاش | مساهمات) |
||
سطر 1: | سطر 1: | ||
− | <noinclude>{{DISPLAYTITLE: | + | <noinclude>{{DISPLAYTITLE: المرشح date في Twig}}</noinclude> |
− | يغير | + | يغير المرشح <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/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: | سطر 11: | ||
{{ post.published_at|date("F jS \\a\\t g:ia") }} | {{ post.published_at|date("F jS \\a\\t g:ia") }} | ||
− | </syntaxhighlight>إذا كانت القيمة الممررة إلى | + | </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") }} | ||
سطر 24: | سطر 24: | ||
{{ 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) باستدعاء | + | </syntaxhighlight>يمكن تعيين المنطقة الزمنية الافتراضية تعيينًا عامًا (globally) باستدعاء <code>setTimezone()</code>: <syntaxhighlight lang="twig"> |
$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: | سطر 37: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
− | * [[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/filters|المرشحات في Twig]] |
== المصادر == | == المصادر == | ||
− | * [https://twig.symfony.com/doc/3.x/filters/date.html صفحة | + | * [https://twig.symfony.com/doc/3.x/filters/date.html صفحة المرشح date من توثيق Twig الرسمي] |
[[تصنيف:Twig]] | [[تصنيف:Twig]] | ||
[[تصنيف:Twig Filters]] | [[تصنيف:Twig Filters]] |
مراجعة 18:57، 5 مايو 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
: المنطقة الزمنية للتاريخ.