شرح صفوف ومحتوى الفقرة
تبدأ نصوص الفترات القياسية ISO 8601 بالحرف P لوحدات التاريخ، وتستخدم الحرف T للفصل قبل وحدات الوقت (الساعات والدقائق والثواني).
- انتبه للفرق الدقيق بين
P1M(شهر واحد في قسم التاريخ) وPT1M(دقيقة واحدة بعد فاصل الوقتT). - في دالة التنسيق
date_interval_format()تبدأ الرموز بالعلامة%مثل%yللسنوات و%mللشهور و%dللأيام و%aلإجمالي الأيام. - فضّل دائماً التواريخ غير القابلة للتعديل المباشر (
date_create_immutable()) لمنع التعديل الجانبي غير المقصود على التواريخ المشتركة.
تنسق الدالة date_interval_format() الفارق الزمني بين التاريخين على صورة 2 days, 6 hrs, 30 mins.
| رمز ISO 8601 / التنسيق | المعنى | مثال عملي | الخطأ الشائع |
|---|---|---|---|
P1Y2M10D | 1 Year, 2 Months, 10 Days | Date period units | Missing leading P |
PT4H30M | 4 Hours, 30 Minutes | Time units after T | Writing P30M (30 months!) instead of PT30M |
%a vs %d | Total days vs Remainder days | 63 vs 4 | Using %d when total days is needed |
%R | Sign (+ or -) | %R%a -> +63 | Forgetting to check if $diff->invert === 1 |
<?php
date_default_timezone_set('UTC');
$d1 = date_create_immutable('2026-06-01 08:00:00');
$d2 = date_create_immutable('2026-06-03 14:30:00');
$diff = date_diff($d1, $d2);
echo date_interval_format($diff, '%a days, %h hrs, %i mins') . "\n";
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تبدأ نصوص الفترات القياسية ISO 8601 بالحرف P لوحدات التاريخ، وتستخدم الحرف T للفصل قبل وحدات الوقت (الساعات والدقائق والثواني). انتبه للفرق الدقيق بين P1M (شهر واحد في قسم التاريخ) وPT1M (دقيقة واحدة بعد فاصل الوقت T). في دالة التنسيق date_interval_format() تبدأ الرموز بالعلامة % مثل %y للسنوات و%m للشهور و%d للأيام و%a لإجمالي الأيام. فضّل دائماً التواريخ غير القابلة للتعديل المباشر (date_create_immutable()) لمنع التعديل الجانبي غير المقصود على التواريخ المشتركة.