Extracting Days of the Week from a Given Week Number
Calculating the individual days that fall within a specific week, given its corresponding week number, is a common task in time-based applications. This guide provides a solution to this in PHP using the date, strtotime, and mktime functions.
PHP Implementation
<code class="php"><?php $week_number = 40; $year = 2008; for ($day = 1; $day <= 7; $day++) { echo date('m/d/Y', strtotime($year . 'W' . $week_number . $day)) . "\n"; } ?></code>
This code snippet first initializes the week number and the corresponding year. Then, it iterates through the days of the week, starting from Monday (day 1) and ending with Sunday (day 7). For each day, it calculates the corresponding date using the strtotime function and prints it in the m/d/Y format.
Additional PHP Function
Alternatively, another PHP function, week_from_monday, can be used to get the dates for a given week, starting from Monday. This function takes a date string in the DD-MM-YYYY format as an argument and returns an array of dates for the corresponding week.
<code class="php"><?php function week_from_monday($date) { list($day, $month, $year) = explode('-', $date); $wkday = date('l', mktime(0, 0, 0, $month, $day, $year)); switch ($wkday) { case 'Monday': $numDaysToMon = 0; break; case 'Tuesday': $numDaysToMon = 1; break; case 'Wednesday': $numDaysToMon = 2; break; case 'Thursday': $numDaysToMon = 3; break; case 'Friday': $numDaysToMon = 4; break; case 'Saturday': $numDaysToMon = 5; break; case 'Sunday': $numDaysToMon = 6; break; } $monday = mktime(0, 0, 0, $month, $day - $numDaysToMon, $year); $seconds_in_a_day = 86400; for ($i = 0; $i < 7; $i++) { $dates[$i] = date('Y-m-d', $monday + ($seconds_in_a_day * $i)); } return $dates; } $date = '07-10-2008'; $dates = week_from_monday($date); print_r($dates); ?></code>
This enhanced function allows for more flexibility in retrieving the dates of a week, given a specific date within that week.
The above is the detailed content of How to Efficiently Extract Days of the Week from a Given Week Number in PHP?. For more information, please follow other related articles on the PHP Chinese website!