当使用“第一天”修改日期时,PHP中确实存在一种奇怪的行为。


$currentMonthDate = new DateTime("2014-07-30 10:26:00.000000");
echo $currentMonthDate->format('Ym');

$currentMonthDate->modify('first day');
echo $currentMonthDate->format('Ym');


$currentMonthDate = new DateTime("2014-07-31 10:26:00.000000");
echo $currentMonthDate->format('Ym');

$currentMonthDate->modify('first day');
echo $currentMonthDate->format('Ym');


$currentMonthDate = new DateTime("2014-08-01 10:26:00.000000");
echo $currentMonthDate->format('Ym');

$currentMonthDate->modify('first day');
echo $currentMonthDate->format('Ym');



我在运行PHP 5.2的生产服务器上发现了此行为,因此我认为这是一个古老的错误,但是它在我们的测试服务器上的PHP 5.3(http://phptester.net/)和5.5中发生。

如果我在PHP 5.2中使用“本月的第一天”,则会发生相同的行为。在PHP 5.5中,“本月的第一天”按预期工作。

“第一天”行为是错误吗?以及如何在PHP 5.2中获得“本月的第一天”而又不进行stringdate之间的怪异转换?

最佳答案

看来此问题是一个文档问题。



更新

该文档现已修复。因此,' of'?不再是可选的。

10-08 11:58