PHP 日時の差分で小数がでてくる

2013/05/21

一定期間を超えると日時の差分で小数がでてくる。

ini_set("date.timezone", "Asia/Tokyo");
をつければOK。

雑記

日にちの差分の取得をしようとしてた。
調べると「strtotime()」を使って秒数を出して1日で割るって感じにすればいいらしい。

echo (strtotime("2013-05-01") – strtotime("2013-05-10") ) / ( 3600 * 24 );

この場合、差分が50日ぐらいまでなら無問題。
60日前後からなぜか小数が出てくる。計算すると1時間だけ足りない。

差分が2日なら48時間となるけど、60日だと1440時間じゃなくて1439時間ってな感じになる。

ココでひとまず、このときの環境
XAMPP+netBeans。
PHP Version 5.4.7。

で、XAMPPじゃなくて、違う環境(PHP Version 5.2.5)で確認。
すると、日にちの差分が求めている感じになる。

う~ん…わかりやくすいうと
・XAMPP+netBeansだと日にちの差分でバグ発生
・違う環境だと日にちの差分でバグ発生しない

PHPのバージョンの問題なのかXAMPPの問題なのかが分からないので「phpinfo()」で確認。確認するのは日にち関連で問題発生なので「date()」。

調べた結果、違う箇所は…
・XAMPP+netBeans: date.timezoneの値「Europe/Berlin」。Default timezoneの値「Europe/Berlin」
・違う観光: date.timezoneの値「no value」。Default timezoneの値「Asia/Tokyo」

「Europe/Berlin」の何が原因なのかは分からない。
分からないけどとりあえず「ini_set()」で「Asia/Tokyo」をセットすることにした。結果、問題解消。

wikiでまとめ中
wiki – PHP 日時の差分(strtotime())

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい