البرمجة

كيفية تضمين تاريخ النهاية في DatePeriod

عند استخدام DatePeriod في PHP، يتم استخدام التاريخ الأخير الذي يحدده المتغير $end كتاريخ نهاية للفترة. ومع ذلك، يتم استخدام التاريخ الأخير كنقطة نهاية حصرية، وهذا يعني أن التاريخ النهائي نفسه لا يُضمّن في النطاق. هذا هو السبب في عدم ظهور يوم الجمعة في نتيجة الفترة التي حصلت عليها.

لتضمين يوم الجمعة في النطاق، يمكنك إما استخدام modify('next saturday') كما ذكرت، أو ببساطة تغيير خطوط الكود الخاصة بتحديد نهاية الفترة كما يلي:

php
$end->modify('next saturday'); $end->modify('next day');

بهذه الطريقة، ستتم إضافة يوم إضافي بعد الجمعة، مما يجعل يوم السبت آخر يوم في النطاق.

المزيد من المعلومات

إضافة إلى ما تم ذكره، يُمكن استخدام الدوال المساعدة في PHP مثل DateTime::add لإضافة فترة زمنية إلى التاريخ النهائي بدلاً من استخدام modify. على سبيل المثال:

php
$end->add(new DateInterval('P1D'));

هذا سيضيف يومًا واحدًا إلى التاريخ النهائي، مما يجعل يوم السبت جزءًا من النطاق.

يجب الانتباه إلى أن استخدام modify مرتين في الكود السابق قد يؤدي إلى تغيير التاريخ النهائي ليكون يوم السبت، ثم يتم إضافة يوم آخر بواسطة modify('next day').

زر الذهاب إلى الأعلى