簡體   English   中英

PHP日期/ strtotime轉換為錯誤的日期

[英]PHP date/strtotime converting to incorrect date

在某些情況下, data()錯誤地轉換了我的日期。

我的日期格式如下: Fri Oct 25 15:00:00 EDT 2011

日期字符串來自外部來源,因此我無法更改格式。

// output incorrect - Fri, 28 Oct 2011 15:00:00 -0400
date("r", strtotime("Fri Oct 25 15:00:00 EDT 2011"))

// output correct - Fri, 21 Oct 2011 15:00:00 -0400
date("r", strtotime("Fri Oct 21 15:00:00 EDT 2011"))

我不知道為什么只更改日期會導致轉換失敗。

我的最終目標是創建一個DateTime對象,但是它遇到了同樣的問題。

// output - Fri Oct 28 19:00:00 EDT 2011
DateTime("Fri Oct 22 19:00:00 EDT 2011")

2011年10月25日是星期二。 Strtotime將日期字符串解釋為“ 10月25日之后的下一個星期五是什么”,並且返回(它認為)是正確的答案:10月28日。

因此,GIGO規則適用。 您正在喂垃圾,想知道為什么要扔垃圾。

您傳遞給strtotime的值並不相符。 2011年5月25日沒有周五。

http://www.timeanddate.com/calendar/monthly.html

date()可以正常工作。 問題是,在您的示例中,如果輸出錯誤,則指定的日期不是Friday

如果始終為Fri則可以刪除前4個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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