第一天!=“本月的第一天”

使用“第一天”修改日期时,PHP中有一个非常奇怪的行为。

'first day' ' of'? 设置当前月份的第一天。 (http://php.net/manual/de/datetime.formats.relative.php)

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

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

201407/201407行

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

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

201407/201408为什么?

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

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

201408/201408行

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

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

“第一天” - 是否有bug? 以及如何在PHP 5.2中获得“本月的第一天”而不会在stringdate之间进行奇怪的转换?


看起来这个问题是一个文档问题。

从Derick的错误#51096:“第一天”和“最后一天”应该是“+1天”和“-1天”。

文档应该更新以反映这种行为,因为目前“第一/最后一天”部分说“不”是可选的。


UPDATE

文档现在已修复。 那么' of'? 不再是可选的。

'first day of'设置当前月份的第一天。

链接地址: http://www.djcxy.com/p/80639.html

上一篇: first day != "first day of this month"

下一篇: Firefox SDK access preferences from content script