我使用DateTime和差異來計算兩個日期之間的天數的區別如下:日期時間差異返回怪異輸出
$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設置基本上是兩個相同的。
的PHP版本您使用的?我在PHP 5.3.13上測試了這個代碼,並且沒有問題($ nr_zile出來的時候是30) –
列舉檢查。它也適用於我在遠程服務器上,但給我在我的本地apache服務器上面的結果...甚至是PHP設置基本相同 – Bogdan
您是否在創建DateTime實例之前設置UTC時區,使用'date_default_timezone_set '?如果沒有,請做...所有相同的結果:'diff'結果相當奇怪,但是您是否願意使用'date_default_timezone_get'來說明您所在的時區? –