私のスクリプトでは、特定の終了日があります。開始日を取得するには、終了日から 23 か月を引きます。基本的に、私のスクリプトがすべきことは、24 か月 (w/年) を出力することです。印刷される最後の月/年は、常に指定された終了日でなければなりません。
何らかの理由で、スクリプトが目的の結果を返してくれません。$end = '2013-07-05' を指定すると、スクリプトは結果を正しく返します。正しい 8 月 11 日から 7 月 13 日まで出力されます。
ただし、日付によっては (例: $end = '2013-07-31')、出力が正しくありません。結果は 9 月 11 日から 8 月 13 日になるはずですが、この場合は 8 月 11 日から 8 月 13 日と出力されますが、これはまったく間違っています。
これが私のコードです:
<?php
$end = strtotime('2013-07-31 +1 month');
$date = strtotime('2013-07-31 -23 month');
$start = $month = $date;
$months = "";
while($month < $end)
{
$months .= date('M y', intval($month))." ";
$month = strtotime("+1 month", intval($month));
}
echo $months;
?>
strtotime() に問題があると思います。前もって感謝します。