次の関数を使用して1か月の範囲を取得しようとしています。
static public function getMonthRange($month, $year)
{
$date = DateTime::createFromFormat('d-m-Y','01-'.$month.'-'.$year);
$start = $date->getTimestamp();
return array(
'start' => $start,
'end' => $date->modify('first day of next month')->getTimestamp()
);
}
これで、3月を除いて正常に機能します。次を使用して1か月あたりの日数を計算して値を確認した((end - start) / 60 / 60 / 24)
ところ、3月は30.958333333333日であり、他の月は正しい日数であることがわかりました。
次のような計算で自分で日付を入力することにしました。
$march = ((strtotime('2012-04-01') - strtotime('2012-03-01')) / 60 / 60 / 24); //30.95833..
$april = ((strtotime('2012-05-01') - strtotime('2012-04-01')) / 60 / 60 / 24); //30
$may = ((strtotime('2012-06-01') - strtotime('2012-05-01')) / 60 / 60 / 24); //31
それでも行進の日数が間違っていました。私のアプローチに何か問題がありますか?そして更に重要なことに; これを修正するにはどうすればよいですか?
前もって感謝します。