爲什麼下面的代碼的輸出是負數?錯誤的時差
代碼:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
以上代碼的輸出是-17295
謝謝!
爲什麼下面的代碼的輸出是負數?錯誤的時差
代碼:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
以上代碼的輸出是-17295
謝謝!
我想你會得到否定答案,因爲時間2013-04-10 21:31:30
,你正在分配給$date
PHP變量是印度標準時間。
您的服務器的時區可能不亞洲/加爾各答。所以你需要設置使用date_default_timezone_set功能的腳本中所有日期/時間功能亞洲/加爾各答默認的時區。
這應該很好地工作:IDEONE DEMO
<?php
$date=strtotime("2013-04-10 21:31:30");
if(function_exists('date_default_timezone_set'))
date_default_timezone_set("Asia/Calcutta");
$now=time();
$diff=$now-$date;
echo $diff;
?>
非常感謝... – 2013-04-10 17:03:42
@Harikrishnan :) :) – 2013-04-10 17:04:35
因爲你減去一些小($date
)
但是,這也可能是因爲你還沒有設置時區或者沒有在PHP中正確設置,如果$now
真的大於更大的東西(strtotime("2013-04-10 21:31:30")
) $date
謝謝,這將是理由。 – 2013-04-10 16:53:47
因爲$日期的時間戳是在未來,因此$現在不到它,從而產生負數
如果我們1365612708
秒從1970年1月1日,並在今晚21點三十一分30秒是從1970年1月1日秒當您從指定的時間,現在(1365612708
)減去今晚(1365625890
)你-13182
秒(其中3.6小時(又名3小時30分鐘(在未來ISH)))
是不是'$日期> $ now'? – Zbigniew 2013-04-10 16:47:00