2 つの日付の間の週番号を表示するプログラム コードを作成しています。私はまた、週番号の間に日付を表示したいと考えています。スタックオーバーフローのサンプルコードに従って、次のコードを作成しました。( here && here )
function getStartAndEndDate($week, $year)
{
$time = strtotime("1 January $year", time());
$day = date('w', $time);
$time += ((7*$week)+1-$day)*24*3600;
$return[0] = date('dMY', $time);
$time += 6*24*3600;
$return[1] = date('dMY', $time);
return $return;
}
$startTime = strtotime('2013-04-01');
$endTime = strtotime('2013-05-03');
$weeks = array();
while ($startTime < $endTime)
{
$weeks[] = date('W', $startTime);
$startTime += strtotime('+1 week', 0);
}
echo count($weeks)."<br/>";
$year="2013";
foreach ($weeks as $key => $w)
{
echo "Week Number:".$w."--";
$return=getStartAndEndDate($w,$year);
$r0=$return[0];
$r1=$return[1];
echo "Start-".$r0."-End-".$r1."<br/>";
}
しかし、出力は間違っています。出力は次のとおりです。
5
週番号: 14--開始-2013 年 4 月 7 日-終了-2013 年 4 月 13 日
週番号: 14--開始-2013 年 4 月 7 日-終了-2013 年 4 月 13 日
週番号: 15 -- 開始 - 2013 年 4 月 14 日 - 終了 - 2013 年 4 月 20 日
週番号: 16--Start-21Apr2013-End-27Apr2013
週番号: 17--Start-28Apr2013-End-04May2013
第 14 週は 2013 年 3 月 31 日から 2013 年 4 月 6 日までです。問題が何であるかを理解できませんでした。どんな助けでも感謝しなければなりません!