php獲取給定時間范圍內(nèi)的自然周、自然月返回內(nèi)容

此方法在區(qū)間日期拆分自然周或自然月使用。
話不多說,直接上代碼

    /**
     * 根據(jù)時間區(qū)間,取出(自然月或自然周)的對應數(shù)組
     * @param string $start Y-m-d H:i:s
     * @param string $end Y-m-d H:i:s
     * @param string $interval 'month' 按照自然月劃分,'week' 按照自然周劃分
     * @return array
     * @throws Exception
     */
    function generateDateRanges( string $start='', string $end='', string $interval=''): array
    {
        $startDateTime = new DateTime($start);
        $endDateTime = new DateTime($end);

        $result = [];
        while ($startDateTime <= $endDateTime) {
            $endDate = $startDateTime->format('Y-m-d');
            if ($interval === 'month') {
                // 調(diào)整日期為當前月份的最后一天
                $startDateTime->modify('last day of this month');
            } elseif ($interval === 'week') {
                // 調(diào)整日期為下一個星期日
                $startDateTime->modify('next sunday');
            }
            $startDate = $startDateTime->format('Y-m-d');

            // 反轉(zhuǎn)起始和結(jié)束日期的順序
            $result[] = [$endDate, $startDate];
            // 增加一天
            $startDateTime->modify('+1 day');
        }

        // 反轉(zhuǎn)數(shù)組順序,使其倒序
        return array_reverse($result);
    }


        $stime = '2023-07-13 00:00:00';
        $etime = '2023-08-08 11:35:03';
        // 傳入 'month' 表示按照自然月劃分,傳入 'week' 表示按照自然周劃分
        $interval = 'month';
        $dateRanges = generateDateRanges($stime, $etime, $interval);

    print_r($dateRanges);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容