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

Generating Recurring Dates with DatePeriod توليد السلاسل الزمنية المتكررة بـ DatePeriod

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

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

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

لتوليد تواريخ الفوترة الدورية أو المواعيد الأسبوعية المتكررة بين تاريخين، تقدم بخطوات ثابتة باستخدام تاريخ البداية والفترة الزمنية.

  • في PHP 8.2+ يمكن توليد السلاسل الزمنية المتكررة وفق صيغة التكرار القياسية ISO-8601 أو بالتقدم الدوري عبر فترة ثابتة.
  • في السكريبتات الإجرائية، يتيح تحريك المؤشر الزمني عبر date_add($cursor, $step) داخل حلقة for أو while توليد المواعيد الدورية بدقة.
  • تحافظ الفترات التقويمية مثل "7 days" أو "1 month" على ثبات الساعة المحلية حتى عند تغير التوقيت الصيفي.

بدءاً من 2026-04-01، تسجل كل دورة التاريخ المنسق وتُقدم المؤشر $cursor بمقدار 7 أيام.

PHP
<?php
date_default_timezone_set('UTC');
$cursor = date_create_immutable('2026-04-01');
$step = date_interval_create_from_date_string('7 days');
$slots = [];
for ($i = 0; $i < 4; $i++) {
    $slots[] = date_format($cursor, 'Y-m-d');
    $cursor = date_add($cursor, $step);
}
echo implode(' -> ', $slots) . "\n";