给定开始日期和结束日期,我需要生成一个包含年份和星期值的数组。例如:
开始日期:2013-01-01
结束日期:2013-02-23
生成的数组:
数组 ( [0] => 数组 ( [week] => 01 [year] => 2013 ) [1] => 数组([周] => 02 [年] => 2013 年) [2] => 数组([周] => 03 [年] => 2013 年) [3] => 数组([周] => 04 [年] => 2013 年) [4] => 数组([周] => 05 [年] => 2013 年) [5] => 数组([周] => 06 [年] => 2013 年) [6] => 数组([周] => 07 [年] => 2013 年) [7] => 数组([周] => 08 [年] => 2013 ))
这是我用来生成它的代码:
public static function getYearWeekRange($startdate, $enddate) {
$array = array();
$starttime = strtotime($startdate);
$endtime = strtotime($enddate);
while ($starttime <= $endtime) {
$year = date('Y', $starttime);
$week = date('W', $starttime);
$array[] = array('week' => $week, 'year' => $year);
$starttime = strtotime('+1 week', $starttime);
}
return $array;
}
我的问题是,当我生成某些日期范围时,我在 2013 年初没有得到正确的年份值。例如:
开始日期:2012-01-01
结束日期:2013-02-23
在这种情况下,它应该有一个年 = 2013 和周 = 01 的子数组,实际上它的年值等于 2012。
例如,如果我将开始日期切换为 2013-01-05,则没有问题。
谁能提供一个解决方案来保证我的年份和周值始终正确?