PHP date/strtotime 转换为不正确的日期
在某些情况下,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")
On some occasions data()
is converting my dates incorrectly.
My date formats look like so:Fri Oct 25 15:00:00 EDT 2011
The date string comes from an external source, so I'm unable to change the format.
// 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"))
I can't figure out why just changing the day makes it fail to convert.
My end goal is to create a DateTime object but it suffers from the same problem.
// output - Fri Oct 28 19:00:00 EDT 2011
DateTime("Fri Oct 22 19:00:00 EDT 2011")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
2011 年 10 月 25 日是星期二。 Strtotime 将您的日期字符串解释为“10 月 25 日之后的下一个星期五是什么”,并且返回(它认为的)正确答案:10 月 28 日。
因此,GIGO 规则适用。你吃的是垃圾,却想知道为什么要倒垃圾。
Oct 25/2011 is a tuesday. Strtotime is interpreting your date string as "what's the next friday AFTER Oct 25th", and is returning (what it thinks) is the correct answer: October 28th.
So, the GIGO rule applies. You're feeding in garbage, and wondering why you're getting garbage out.
您传递给
strtotime
的值不相符。没有 2011 年 25 日星期五。http://www.timeanddate.com/calendar/monthly.html< /a>
The value you're passing into
strtotime
doesn't tally. There's no Friday 25th, 2011.http://www.timeanddate.com/calendar/monthly.html
date()
工作正常。问题是,在您的示例中,输出不正确,指定日期是不是星期五。
如果始终是
Fri
,您可以去掉前 4 个字符。date()
works fine.Problem is, in your examples with incorrect output specified date is not Friday.
You can strip out first 4 characters if it always is
Fri
.