[英]Inconsistent data and bad answers using strtotime and date
使用PHP 5.3並給定字符串Sat, 20 Oct 2012 05:00:00 GMT
:
print $start;
$start = strtotime($start);
var_dump($start);
$hour = date('H:i A', $start);
die($hour);
我程序中的那段代碼返回以下內容:
Sat, 20 Oct 2012 05:00:00 GMT
int(1350709200)
00:00 AM
var_dump
是正確的,但是日期返回了錯誤的答案。
還要注意,將代碼段更改為:
print $start;
$start = strtotime($start);
die($start);
$hour = date('H:i A', $start);
die($hour);
收益:
Sat, 20 Oct 2012 05:00:00 GMT
第一個die返回一個空字符串,一個null,我只能假定它實際上是一個布爾值FALSE。
所以我實際上在這里有兩個不同的問題。 根據我是var_dump
還是死去,相同的答案會返回兩種不同的結果,第二個是該日期似乎是在接受FALSE答案,而不是var_dump
答案。
救命?
如您所說,您將時區設置為America / Chicago。 調用strtotime時,您在字符串中明確指定了GMT。 然后,當您將時間戳記為“日期”時,它將采用時間戳記並給您在美國/芝加哥的時間,格林尼治標准時間前5小時,這就是為什么00:00 AM。
您正在使用5.3。 我建議使用DateTime對象代替strtotime()和date()。 使用時區等要容易一些,並且var_dumps非常有用。 通過用戶輸入或db值創建DateTime,然后在代碼中傳遞它而不是時間戳。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.