PHP date/strtotime 转换为不正确的日期

发布于 2024-12-11 10:11:36 字数 560 浏览 0 评论 0原文

在某些情况下,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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

深爱成瘾 2024-12-18 10:11:36

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.

知你几分 2024-12-18 10:11:36

您传递给 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

半暖夏伤 2024-12-18 10:11:36

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文