Php 是否有一种将DateTime修改为“的快捷方式?”;“今天”;但是否保留以前存储的时间?

Php 是否有一种将DateTime修改为“的快捷方式?”;“今天”;但是否保留以前存储的时间?,php,datetime,Php,Datetime,有一个DateTime-对象。我想将它设置为今天并保持时间 例如: 设定为2012-10-12 10:30:00 应该是2012-11-22 10:30:00 这当然行不通: // this obviously changes it to 2012-11-22 00:00:00 $date->modify('today')); 这将起作用,但似乎需要付出一点努力: $clone = clone $date(); $date->modify('today')->setTim

有一个
DateTime
-对象。我想将它设置为今天并保持时间

例如:

  • 设定为2012-10-12 10:30:00
  • 应该是2012-11-22 10:30:00
这当然行不通:

// this obviously changes it to 2012-11-22 00:00:00
$date->modify('today'));
这将起作用,但似乎需要付出一点努力:

$clone = clone $date();
$date->modify('today')->setTime($clone->format('H'), $clone->format('i'));
有没有更短/更有效的方法?

没有更好的方法:

$newDate = new DateTime('today '.$date->format('H:i'));

+1
$date->modify('today'.$date->format('H:i'))也会起作用。请记住,根据您所在的时区,某些时间在某一天是合法的,而不是在另一天。例如,如果您所在的美国时区有夏令时,在夏令时向前移动的那一天,没有凌晨2:01,时钟直接跳到凌晨3:00。在这种情况下,彻底测试你的应用程序是如何工作的,以确保你不会每年遇到一次神奇地消失的问题。或者将时区设置为UTC并忽略所有这些类型的问题。:)