strtotime("third Saturday October 2011")
应该是10/15/2011。但是,它将在2011年10月22日到来。我认为这是因为2011年10月在星期六开始,PHP正在查看第一整周。由于2011年1月10日是星期六而不是整整一周它忽略了它。
一些研究建议在一周之间加上“of”,月份应该修复它,但这不起作用。
有关为何发生这种情况的建议以及我可以采取哪些措施来纠正它?
答案 0 :(得分:2)
这是PHP中的文档缺陷< 5.2.7(参见strtotime):
在5.2.7之前的PHP 5中,请求给定的给定事件 一个月的工作日,那个工作日是这个月的第一天 会错误地将一周添加到返回的时间戳。这有 已在5.2.7及更高版本中得到纠正。
你需要升级PHP,或者使用Jonathan Kuhn建议的解决方法。
答案 1 :(得分:1)
我在php 5.2.6上得到了与你相同的结果。这对我有用,虽然不理想。
echo date('Y-m-d', strtotime('Saturday October 2011 +2 weeks'));
答案 2 :(得分:0)
<?php echo date('Y-m-d', strtotime('third Saturday of October 2011')); ?>
对我来说很好。输出为2011-10-15
。