PHP 日時の差分で小数がでてくる
一定期間を超えると日時の差分で小数がでてくる。
をつければOK。
雑記
日にちの差分の取得をしようとしてた。
調べると「strtotime()」を使って秒数を出して1日で割るって感じにすればいいらしい。
この場合、差分が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())