我创建了一个对象
$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)。
答案 0 :(得分:2)
如果没有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');