当使用 php DateTime 对象获取该月最后一天的日期时,年份总是不正确的。
我的代码是:
$d = new DateTime();
$d->modify('last day of this month');
$formattedDateTime = $d->format('Y-m-d H:i:s')
除了返回为 7168 而不是 2012 的年份之外,一切都是正确的。
任何人对造成这种情况的原因有任何想法吗?
正如其他人所说,它也适用于我(PHP 5.4.3)。但是,在一些较新的 PHP 版本中,日期/时间代码中存在一些错误,因此请尽可能尝试升级您的安装,看看是否有帮助。
话虽如此,您应该将字符串直接传递给构造函数,而不是使用DateTime::modify()
:
$d = new DateTime('last day of this month');
$formattedDateTime = $d->format('Y-m-d H:i:s');
它似乎与您的 PHP 版本有关。
我认为这是PHP DateTime 相对格式页面上的最后一条评论
应该注意的是,其中一些字符串显然只在 PHP 5.3 中有效,特别是:例如“本月的第一天”和“本月的最后一天”。根据在另一个网站上找到的信息,PHP 5.3 中添加了“xxx day of”功能。