次のように、DateTime と diff を使用して、2 つの日付間の日数の差を計算しています。
$data_inceput = '2013-10-01';
$data_sfarsit = '2013-10-31';
$date1 = new DateTime($data_inceput);
$date2 = new DateTime($data_sfarsit);
$nr_zile = $date2->diff($date1)->format("%a");
$nr_zile
何らかの理由で 6015 として表示されます。
もし私が`var_dump($date2->diff($date1));
私は得る:
object(DateInterval)#6 (8) {
["y"] => int(0)
["m"] => int(0)
["d"] => int(30)
["h"] => int(0)
["i"] => int(0)
["s"] => int(0)
["invert"] => int(1)
["days"] => int(6015)
なぜこのように振る舞うのか分かりますか?また、各日付のタイムゾーンを UTC に個別に設定して、同じ結果を得ようとしました。
編集:本番サーバーでテストしましたが、うまく機能します。唯一の問題はローカルApacheサーバーにありますが、php設定は基本的に2つで同じです。