簡體   English   中英

使用strtotime和date的數據不一致且答案錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM