2012-11-22 44 views
4

有一個DateTime -object。我想將其設置爲今天並保持時間。是否有簡短的方法將DateTime修改爲「今天」,但保留以前存儲的時間?

例如:

  • 將它設置爲二零一二年十月十二日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')); 

有沒有更短/更有效的方法?

+1

請記住,這取決於你的時區,有時會是合法的第一天,而不是其他。例如,如果您在夏令時在美國的時區,則在夏時制前進的那一天,不會有凌晨2點01分,時鐘會直接跳到凌晨3點。在這種情況下徹底測試您的應用程序的工作方式,以確保您每年一次都不會遇到任何問題,而這一切都會神奇地消失。或者將您的時區設置爲UTC並忽略所有這些類型的問題。 :) – whamma

回答

6

也不遑多讓:

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

+1'$ date-> modify('today'。$ date-> format('H:i'));'當然也會工作。 –

+0

+1我喜歡這一款。 – insertusernamehere

+0

不錯。爲此+1。 –

相關問題