إضافة الأشهر إلى التواريخ دون تجاوز اليوم الأخير من الشهر في PHP
يعد تعديل التاريخ وإضافة الأشهر مهمة واضحة في PHP . ومع ذلك، فإن التأكد من أن التاريخ الناتج لا يمتد إلى ما بعد اليوم الأخير من الشهر يشكل تحديًا بسيطًا.
ولمعالجة هذه المشكلة، نقدم نهجًا يضمن الدقة في إضافة التاريخ:
function add($date_str, $months)
{
$date = new DateTime($date_str);
// Capture the starting day of the month
$start_day = $date->format('j');
// Add the specified number of months
$date->modify(" {$months} month");
// Extract the resulting day of the month
$end_day = $date->format('j');
// Check if the resulting day differs from the original day
if ($start_day != $end_day)
{
// If they are different, it means the month changed, so we adjust the date
$date->modify('last day of last month');
}
return $date;
}
تأخذ هذه الوظيفة معلمتين: التاريخ الأولي كسلسلة وعدد الأشهر المراد إضافتها. يبدأ بإنشاء كائن DateTime واستخراج يوم بداية الشهر. ثم يتم تعديل التاريخ بإضافة عدد الأشهر المحدد. وبعد الإضافة، يقوم باسترداد اليوم الناتج من الشهر ومقارنته باليوم الأصلي. إذا اختلفت الأيام، فهذا يدل على أن الشهر قد تغير، لذلك يتم تصحيح التاريخ إلى اليوم الأخير من الشهر السابق.
لتوضيح فائدة هذه الوظيفة، إليك بعض الأمثلة:
$result = add('2011-01-28', 1); // 2011-02-28
$result = add('2011-01-31', 3); // 2011-04-30
$result = add('2011-01-30', 13); // 2012-02-29
$result = add('2011-10-31', 1); // 2011-11-30
$result = add('2011-12-30', 1); // 2011-02-28
باستخدام هذه الوظيفة، يمكنك بكل ثقة إضافة أشهر إلى التواريخ دون القلق من التجاوزات في الأشهر اللاحقة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3