diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 78551dac105496cc1a9a95535b7cd4daccbaab1e..39d3e6ffa7b7595abbab2ebe0f890a439bdb88f3 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -518,8 +518,8 @@ function dol_get_last_day($year,$month=12,$gm=false) * @param int $day Day * @param int $month Month * @param int $year Year - * @param int $gm False = Return date to compare with server TZ, True to compare with GM date. - * @return array year,month, week,first_day,prev_year,prev_month,prev_day + * @param int $gm False or 0 or 'server' = Return date to compare with server TZ, True or 1 to compare with GM date. + * @return array year,month,week,first_day,prev_year,prev_month,prev_day */ function dol_get_first_day_week($day,$month,$year,$gm=false) { @@ -542,7 +542,7 @@ function dol_get_first_day_week($day,$month,$year,$gm=false) $tmpday = date($tmparray[0])-$seconds; $tmpday = date("d",$tmpday); - //Check first day of week is form this month or not + //Check first day of week is in same month than current day or not if ($tmpday>$day) { $prev_month = $month-1; @@ -559,15 +559,17 @@ function dol_get_first_day_week($day,$month,$year,$gm=false) $prev_month = $month; $prev_year = $year; } + $tmpmonth = $prev_month; + $tmpyear = $prev_year; - //Get first day of next week + //Get first day of next week $tmptime=dol_mktime(12,0,0,$month,$tmpday,$year,1,0); $tmptime-=24*60*60*7; $tmparray=dol_getdate($tmptime,true); $prev_day = $tmparray['mday']; - //Check first day of week is form this month or not - if ($prev_day>$tmpday) + //Check prev day of week is in same month than first day or not + if ($prev_day > $tmpday) { $prev_month = $month-1; $prev_year = $year; @@ -579,9 +581,9 @@ function dol_get_first_day_week($day,$month,$year,$gm=false) } } - $week = date("W",dol_mktime(0,0,0,$month,$tmpday,$year,$gm)); + $week = date("W",dol_mktime(0,0,0,$tmpmonth,$tmpday,$tmpyear,$gm)); - return array('year' => $year, 'month' => $month, 'week' => $week, 'first_day' => $tmpday, 'prev_year' => $prev_year, 'prev_month' => $prev_month, 'prev_day' => $prev_day); + return array('year' => $year, 'month' => $month, 'week' => $week, 'first_day' => $tmpday, 'first_month' => $tmpmonth, 'first_year' => $tmpyear, 'prev_year' => $prev_year, 'prev_month' => $prev_month, 'prev_day' => $prev_day); } /**