Home > Backend Development > PHP Tutorial > How to Efficiently Extract Days of the Week from a Given Week Number in PHP?

How to Efficiently Extract Days of the Week from a Given Week Number in PHP?

DDD
Release: 2024-10-26 11:03:02
Original
253 people have browsed it

How to Efficiently Extract Days of the Week from a Given Week Number in PHP?

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>
Copy after login

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>
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template