شرح صفوف ومحتوى الفقرة
لا تطرح الطوابع الزمنية وتقسمها على 86400 عبر الشهور المختلفة؛ بل اعتمد على date_diff($start, $end) لحساب الفروق التقويمية بدقة.
- تُرجع
date_diff($d1, $d2)كائن فترة يحتوي على الخصائصy(السنوات) وm(الشهور) وd(الأيام المتبقية) وإجمالي الأيام الكليdays. - تعطي الخاصية
$diff->daysإجمالي عدد الأيام الكلي بين التاريخين، بينما تعطي$diff->dالأيام المتبقية فقط بعد خصم الشهور الكاملة. - نسّق الفارق عبر
date_interval_format($diff, "%R%a days")حيث يطبع%Rالإشارة (+أو-) ويطبع%aإجمالي الأيام.
بين 1 يناير و5 مارس 2026، تحسب date_diff() التفصيل التقويمي (2 months, 4 days) وإجمالي الأيام الكلي (63 days).
PHP
<?php
date_default_timezone_set('UTC');
$start = date_create_immutable('2026-01-01');
$end = date_create_immutable('2026-03-05');
$diff = date_diff($start, $end);
$breakdown = date_interval_format($diff, '%m months, %d days');
echo "$breakdown (Total: " . $diff->days . " days)\n";