PHP에서 한 달 안에 하루의 주 수를 결정하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-14 18:42:02
원래의
938명이 탐색했습니다.

How to Determine the Week Number of a Day Within a Month in PHP?

PHP에서 한 달 내 요일의 주 수를 결정하는 방법

한 달 내 특정 날짜의 주 수를 결정하면 도전적인 일이 되십시오. 이 문서에서는 PHP에서 이 문제에 대한 자세한 솔루션을 제공하므로 특정 날짜의 주 번호를 쉽게 식별할 수 있습니다.

해결책:

제공되는 PHP 함수, getWeeks()는 지정된 날짜에 대해 해당 월의 주 수를 계산합니다. 두 개의 매개변수를 사용합니다:

  • $date: YYYY-MM-DD 형식의 날짜.
  • $rollover: 요일 한 주가 넘어가는 날(예: "일요일" 또는 "monday").

이 함수는 먼저 날짜에서 연도와 월을 추출하고 지정된 날짜와 해당 월의 1일 사이의 일수를 계산하는 방식으로 작동합니다. 그런 다음 해당 월의 날짜를 반복하여 각 날짜가 지정된 롤오버 날짜에 해당하는지 확인합니다. 그렇다면 주 수를 증가시킵니다.

사용 예:

<?php

    /**
     * Returns the amount of weeks into the month a date is
     * @param $date a YYYY-MM-DD formatted date
     * @param $rollover The day on which the week rolls over
     */
    function getWeeks($date, $rollover)
    {
        $cut = substr($date, 0, 8);
        $daylen = 86400;

        $timestamp = strtotime($date);
        $first = strtotime($cut . "00");
        $elapsed = ($timestamp - $first) / $daylen;

        $weeks = 1;

        for ($i = 1; $i <= $elapsed; $i++)
        {
            $dayfind = $cut . (strlen($i) < 2 ? '0' . $i : $i);
            $daytimestamp = strtotime($dayfind);

            $day = strtolower(date("l", $daytimestamp));

            if($day == strtolower($rollover))  $weeks ++;
        }

        return $weeks;
    }


    //
    echo getWeeks("2011-06-11", "sunday"); //outputs 2, for the second week of the month
?>
로그인 후 복사

설명:

위의 예 날짜 "2011-06-11"을 사용하여 getWeeks() 함수를 호출하고 롤오버 요일 "일요일". 결과는 2이며, 이는 2011년 6월 11일이 일요일 롤오버의 경우 6월 두 번째 주에 해당함을 나타냅니다.

위 내용은 PHP에서 한 달 안에 하루의 주 수를 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿