انتقل إلى محتوى الدرس

Parsing Relative Dates with strtotime تحليل التواريخ النسبية والنصية بدالة strtotime

احسب الفروق الزمنية بدقة، وأضف واطرح الفترات عبر DateTimeImmutable وDateInterval، وحوّل التوقيت بين المناطق الزمنية المختلفة في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تحول الدالة strtotime() العبارات الزمنية النسبية مثل "+2 weeks" أو "first day of next month" إلى طابع زمني بالثواني (Unix Timestamp).

  • مرّر طابعاً زمنياً مرجعياً كمعامل ثانٍ strtotime("+10 days", $baseTs) لجعل الحسابات النسبية ثابتة وقابلة للاختبار.
  • تُرجع strtotime() القيمة false إذا تعذر تحليل النص المدخل كتاريخ صالح.
  • انتبه لفرق الفاصل النصي: الصيغة بالشرطة المائلة "05/04/2026" تُفسر كـ شهر/يوم/سنة، بينما الشرطة العادية "05-04-2026" تُفسر كـ يوم-شهر-سنة.

بالاعتماد على تاريخ الأساس 2026-03-15، تعطي إضافة 14 يوماً التاريخ 2026-03-29، ويعطي أول يوم في الشهر التالي 2026-04-01.

PHP
<?php
date_default_timezone_set('UTC');
$base = strtotime('2026-03-15 00:00:00');
$trialEnd = strtotime('+14 days', $base);
$nextMonth = strtotime('first day of next month', $base);
echo "Trial ends: " . date('Y-m-d', $trialEnd) . "\n";
echo "Next billing: " . date('Y-m-d', $nextMonth) . "\n";