I'm making a function that would break current month into an array of weeks, each week with its starting and ending date. For example the current month is September, so this is what I expect my function to return:
$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';
I understand that only non-leap February will have 4 weeks. This is what I have so far
$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);
It works almost correctly, except I want it to stop on the last day of the month in the last week.
Above code has a problem with the 5th
index of the week. It results
$week_arr[5]['start'] = '29-09-2014'
$week_arr[5]['end'] = '35-09-2014'
How to fix that?
Thank you for your answers.