दो दी गई तिथि सीमाओं के बीच सप्ताह के प्रत्येक दिन (सोमवार से रविवार) की घटनाओं की गणना करने के लिए PHP में DateTime क्लास और strtotime() फ़ंक्शन का उपयोग किया जा सकता है।
उदाहरण
<?php
$start = "11-11-2019";
$end = "12-12-2019";
$week_day = array(
'Monday' => 0,
'Tuesday' => 0,
'Wednesday' => 0,
'Thursday' => 0,
'Friday' => 0,
'Saturday' => 0,
'Sunday' => 0
);
$start = new DateTime($start);
$end = new DateTime($end);
while ($start <= $end) {
$time_stamp = strtotime($start->format('d-m-Y'));
$week = date('l', $time_stamp);
$week_day[$week] = $week_day[$week] + 1;
$start->modify('+1 day');
}
print_r("The number of days between the given range is");
print_r($week_day);
?>
आउटपुट
The number of days between the given range isArray
(
[Monday] => 5
[Tuesday] => 5
[Wednesday] => 5
[Thursday] => 5
[Friday] => 4
[Saturday] => 4
[Sunday] => 4
)
इस प्रोग्राम में:
- शुरुआत और अंत तिथि को
DateTimeऑब्जेक्ट्स में परिवर्तित किया जाता है। - एक सरणी
$week_dayसप्ताह के प्रत्येक दिन के लिए काउंटर इनिशियलाइज़ करती है। whileलूप शुरुआत तिथि से अंत तिथि तक प्रत्येक दिन पर पुनरावृति करता है।strtotime()औरdate('l')का उपयोग करके वर्तमान दिन का नाम (जैसे "Monday") प्राप्त किया जाता है।- संबंधित दिन का काउंटर बढ़ाया जाता है।
modify('+1 day')तिथि को एक दिन आगे बढ़ाता है।- अंत में, प्रत्येक दिन की घटनाओं की संख्या प्रिंट की जाती है।
सुधार के सुझाव
- तिथि प्रारूप सुसंगत रखें (उदाहरण के लिए, "Y-m-d" अधिक सुरक्षित है)।
- बड़ी तिथि सीमाओं के लिए, लूप के बजाय गणितीय गणना अधिक कुशल होगी।
DateTime::diff()का उपयोग करके कुल दिनों की संख्या प्राप्त की जा सकती है, फिर पूर्ण सप्ताह और शेष दिनों की गणना की जा सकती है।