为什么 strtotime 休息一周?

发布于 2024-12-09 03:06:14 字数 285 浏览 0 评论 0原文

strtotime("third Saturday October 2011")

应该是 2011 年 10 月 15 日。不过,它将于 2011 年 10 月 22 日发布。我认为这是因为 2011 年 10 月从星期六开始,而 PHP 正在关注第一个整周。由于 10/1/2011 是星期六而不是整周,因此它会忽略它。

一些研究建议在星期几和月份之间加上“of”应该可以解决这个问题,但这不起作用。

关于为什么会发生这种情况以及我可以采取哪些措施来纠正它有什么建议吗?

strtotime("third Saturday October 2011")

Should be 10/15/2011. However, it's coming up at 10/22/2011. I assume this is because October 2011 starts on a Saturday and PHP is looking at the first full week. Since 10/1/2011 is a Saturday not a full week it ignores it.

Some research suggested putting "of" between the day of the week and the month should fix it but that doesn't work.

Any suggestions on why this is happening and what I can do to correct it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(3

心意如水 2024-12-16 03:06:14

这是 PHP <5.2.7 中记录的缺陷(请参阅 strtotime):

在 5.2.7 之前的 PHP 5 中,请求给定的给定出现
一个月中的某个工作日,该工作日是该月的第一天
会错误地在返回的时间戳上添加一周。这有
已在5.2.7及后续版本中修正。

您需要升级 PHP,或者使用 Jonathan Kuhn 建议的解决方法。

This is a documented flaw in PHP <5.2.7 (see strtotime):

In PHP 5 prior to 5.2.7, requesting a given occurrence of a given
weekday in a month where that weekday was the first day of the month
would incorrectly add one week to the returned timestamp. This has
been corrected in 5.2.7 and later versions.

You'll need to upgrade PHP, or use a work around like Jonathan Kuhn suggests.

も星光 2024-12-16 03:06:14

我在 php 5.2.6 上得到了与你相同的结果。这对我有用,但并不理想。

echo date('Y-m-d', strtotime('Saturday October 2011 +2 weeks'));

I was getting the same results as you on php 5.2.6. This works for me although not ideal.

echo date('Y-m-d', strtotime('Saturday October 2011 +2 weeks'));
呆萌少年 2024-12-16 03:06:14
<?php echo date('Y-m-d', strtotime('third Saturday of October 2011')); ?>

对我来说效果很好。输出为2011-10-15

<?php echo date('Y-m-d', strtotime('third Saturday of October 2011')); ?>

Works fine for me. Output is 2011-10-15.

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