重複の可能性:
phpを使用して2つの日付の間の日数を見つける方法
これを行う方法を知りたくありません。なぜ期待した結果が得られないのか知りたい。
次のコードを使用して、YYYY-mm-ddとしてフォーマットされた2つの日付間の日数を計算しようとしています。
$day1 = strtotime($_REQUEST['start']);
$day2 = strtotime($_REQUEST['end']);
$nbOfDays = $day2 - $day1;
$nbOfDays = ceil($nbOfDays/60/60/24);
echo $nbOfDays;
問題は、2012-12-01と2012-12-31の差を計算すると、30日(31である必要があります)になります。また、2012-11-01と2012-11-30の差も30日です(正しい!)
純粋な情報のために更新:
私はこのコードを変更しなければなりませんでした(ジャスティンのおかげで):
$day1 = new DateTime($_REQUEST['start']);
$day2 = new DateTime($_REQUEST['end']);
$interval = round(abs($day2->format('U') - $day1->format('U')) / (60*60*24));
echo $interval;
にとって :
$day1 = new DateTime($_REQUEST['start']);
$day2 = new DateTime($_REQUEST['end']);
$nb1 = $day2->format('U');
$nb2 = $day1->format('U');
$interval = round(abs($nb1 - $nb2) / (60*60*24));
echo $interval;
なぜなら
$day2->format('U') - $day1->format('U')
0に等しかった
したがって、最終的に、2012-12-31と2012-12-01の差はまだ30でした。BUUUTTTT、2012-11-30と2012-11-01の差は29だったので、
echo $interval +1;
いずれにせよ正しい日数を与えます!