1. 程式人生 > >根據指定日期獲取月份、根據當前第幾周獲取該自然周的起始日期

根據指定日期獲取月份、根據當前第幾周獲取該自然周的起始日期

// 獲取指定日期內月份的起始日期
protected function to_month($begin_at , $end_at) {
	$month1 = explode("-", $begin_at);
        $month2 = explode("-", $end_at);
        $count = abs($month1[0] - $month2[0]) * 12 + abs($month1[1] - $month1[1]);
        $arr = array();
        for ($i = 0; $i <= $count - 1; ++$i) {
            $t
= strtotime("-$i month"); $arr[] = explode('/', date('Y-m-01', $t) . '/' . date('Y-m-', $t) . date('t', $t)); } return $arr; } // 根據第幾周獲取該周的起始日期 protected function week_day($year, $week = 1) { $year_start = mktime(0, 0, 0, 1, 1, $year); $year_end = mktime(0, 0
, 0, 12, 31, $year); // 判斷第一天是否為第一週的開始 if (intval(date('W', $year_start)) === 1) { $start = $year_start;//把第一天做為第一週的開始 } else { $week++; $start = strtotime('+1 monday', $year_start);//把第一個週一作為開始 } // 第幾周的開始時間 if ($week === 1
) { $weekday['start'] = $start; } else { $weekday['start'] = strtotime('+' . ($week - 0) . ' monday', $start); } // 第幾周的結束時間 $weekday['end'] = strtotime('+1 sunday', $weekday['start']); if (date('Y', $weekday['end']) != $year) { $weekday['end'] = $year_end; } return [ 'begin_at' => date("Y-m-d", $weekday['start']), 'end_at' => date("Y-m-d", $weekday['end']) ]; }