我正在製作一個函數,將當前月份分成幾周,每週以其開始和結束日期。例如,當前月份是九月,所以這是我希望我的函數返回:按開始日期和結束日期分配一個月,每週數組
$week_arr[1]['start'] = '1-09-2014';
$week_arr[1]['end'] = '7-09-2014';
$week_arr[2]['start'] = '8-09-2014';
$week_arr[2]['end'] = '14-09-2014';
/*
.
.
.
*/
$week_arr[5]['start'] = '29-09-2014';
$week_arr[5]['end'] = '30-09-2014';
我明白,只有非閏年的二月將有4周。 這是我迄今爲止
$no_of_days_in_month = date("t");
$no_of_weeks = (ceil(intval($no_of_days_in_month)/7));
$week_inc = 0;
$curr_month_year = date("m-Y");
$week_arr = array();
for($i = 1; $i <= $no_of_weeks; $i++){
$week_arr[$i]['start'] = ($week_inc+1)."-".$curr_month_year;
$week_arr[$i]['end'] = ($week_inc+7)."-".$curr_month_year;
$week_inc += 7;
}
var_dump($week_arr);
它的工作原理幾乎正常,但我希望它停止在每月的最後一週的最後一天。 以上代碼與本週的5th
索引有問題。它的結果
$week_arr[5]['start'] = '29-09-2014'
$week_arr[5]['end'] = '35-09-2014'
如何解決這個問題?
謝謝你的回答。
是。我正要評論說這裏可能需要'else'。讓我測試一下硬編碼月份的代碼,比如2月份和其他月份的31天,但看起來這個函數可以正常工作。謝謝 :) – 2014-09-02 04:49:15