修改DateTime对象

时间:2011-03-27 18:50:19

标签: php datetime

我创建了一个对象

$date = new DateTime();

设置为当前日期 2011-04-01 21:43:40 。我尝试以下

$date->modify('midnight');

我希望对象设置为 2011-04-01 00:00:00 。但什么都没发生。对象未进行修改,并继续具有 2011-04-01 21:43:40 日期。我只想把时间重置为午夜(00:00:oo)。

5 个答案:

答案 0 :(得分:2)

http://codepad.org/w5RAF0Lh

如果没有date.timezone设置

,这段代码(午夜时间)将无效

更新:这段代码要求PHP 5.3.6正常工作。在以前的版本DateTime::modify('midnight')无法正常工作

答案 1 :(得分:1)

我遇到了同样的问题! 但是返回的日期是正确的,所以我做的是:

@$date->modify('midnight');

答案 2 :(得分:0)

得到一些问题,或许有助于阐明问题......

你的php.ini文件中是否设置了时区?

创建新的DateTime()对象后,您是使用var_dump()还是其他函数来查看其参数并获取设置日期?

您是否尝试过将其他日期和时间格式传递给修改方法?

答案 3 :(得分:0)

Doctrine检查DateTime对象是否已更改其引用。 修改对象不会更改引用,因此对于doctrine,这不是更改。 请改用new \DateTime('midnight')

答案 4 :(得分:0)

使用

解决
$date = new DateTime(date('Y-m-d H:i:s', strtotime('today midnight')));
echo $date->format('Y-m-d H:i:s');