>  기사  >  백엔드 개발  >  주 번호 또는 특정 날짜가 주어지면 PHP에서 요일을 계산하는 방법은 무엇입니까?

주 번호 또는 특정 날짜가 주어지면 PHP에서 요일을 계산하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-27 01:41:30106검색

How to Calculate the Days of a Week in PHP Given a Week Number or a Specific Date?

요일 계산

date -u %W에서 얻은 것과 같이 주 번호가 주어지면 다음을 계산해야 할 수도 있습니다. 월요일부터 시작하여 해당 주의 요일입니다. 이를 통해 해당 주의 특정 날짜 목록을 생성할 수 있습니다.

PHP 구현

PHP에서는 루프를 활용하여 날짜를 생성할 수 있습니다.

<code class="php">$week_number = 40;
$year = 2008;
for ($day = 1; $day <= 7; $day++) {
    echo date('m/d/Y', strtotime($year . "W" . $week_number . $day)) . "\n";
}

출력:

10/06/2008
10/07/2008
10/08/2008
10/09/2008
10/10/2008
10/11/2008
10/12/2008

주어진 날짜에서 날짜 가져오기

다른 접근 방식은 특정 날짜를 기준으로 특정 주의 날짜를 가져오는 것입니다. 예를 들어, 2008년 10월 7일이 포함된 주의 날짜를 얻으려면:

<code class="php">function week_from_monday($date) {
    // Assuming $date is in format DD-MM-YYYY
    list($day, $month, $year) = explode("-", $date);

    // Get the weekday of the given 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;
    }

    // Timestamp of the Monday for that week
    $monday = mktime(0, 0, 0, $month, $day - $numDaysToMon, $year);

    $seconds_in_a_day = 86400;

    // Get date for 7 days from Monday (inclusive)
    for ($i = 0; $i < 7; $i++) {
        $dates[$i] = date('Y-m-d', $monday + ($seconds_in_a_day * $i));
    }

    return $dates;
}

출력:

Array
(
    [0] => 2008-10-06
    [1] => 2008-10-07
    [2] => 2008-10-08
    [3] => 2008-10-09
    [4] => 2008-10-10
    [5] => 2008-10-11
    [6] => 2008-10-12
)</code>

위 내용은 주 번호 또는 특정 날짜가 주어지면 PHP에서 요일을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.