当使用“第一天”修改日期时,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中获得“本月的第一天”而又不进行
string
和date
之间的怪异转换? 最佳答案
看来此问题是一个文档问题。
更新
该文档现已修复。因此,' of'?
不再是可选的。