開始日と終了日を指定して、年と週の値を含む配列を生成する必要があります。例えば:
開始日: 2013-01-01
終了日: 2013-02-23
生成された配列:
配列 ( [0] => 配列 ( [週] => 01 [年] => 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 年 1 月 5 日に変更しても問題ありません。
私の年と週の値が常に正しいことを保証するソリューションを誰かが提供できますか?