PHP strtotime()本周一的星期一不同结果

Ste*_* O. 8 php strtotime

我在本周获得星期一的日期时遇到问题.

echo date('Y-m-d',strtotime('monday this week'));
Run Code Online (Sandbox Code Playgroud)

当我在我的本地机器(PHP 5.3)上运行上面的代码时,它正确地输出'2011-03-07',但我服务器上的相同代码(PHP 5.2)输出'2011-03-14'(那是星期一下一个周).

我试图在两台机器上运行日期('W'),我得到相同的结果(10).

编辑:任何想法如何正常工作?

提前致谢.

小智 8

使用 date('Y-m-d',strtotime(date('o-\\WW')));


Jef*_*ker 5

不是我已经看到了这个问题,但我看到的非常相似.strtotime似乎改变了不同版本的PHP之间的行为,并且除了简单的操作(例如'+1周'),很难保证功能将保持不变.

如果你无法升级到5.3,正如所指出的那样似乎是一种改进,我所能推荐的就是玩一些排列.通过改写问题,通常可以从旧版本的strtotime中获得正确的答案.示例可能包括......

  • 下周一 - 周一周
  • 上周一+1周
  • 这个星期一