2012-05-15 3 views

Antwort

46

Sie sollten eine T vor der Zeitangabe Teil hinzufügen:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->add(new DateInterval('PT1H')); 

Siehe DateIntervalconstructor Dokumentation: "period"

Das Format beginnt mit dem Buchstaben P, für Jede Zeitdauer wird durch einen ganzzahligen Wert gefolgt von einem Periodenbezeichner dargestellt. Wenn die Dauer Zeitelemente enthält, ist dieser Teil der Spezifikation , dem der Buchstabe T vorangestellt ist.

(Hervorhebung hinzugefügt)

+0

+1 DateInterval immer bevorzugt. –

2

Mit strtotime():

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$time = strtotime($time) + 3600; // Add 1 hour 
$time = date('D M j G:i:s O Y', $time); // Back to string 
echo $time; 
8

Vorherige Antworten arbeiten. Normalerweise verwende ich Datetime Modify in meinen extern gehosteten Webseiten. Überprüfen Sie php manual für weitere Informationen. mit dem Code vorgeschlagen, sollte es so funktionieren:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->modify('+ 1 hour'); 

Für diejenigen, die nicht die Objektorientierung, verwenden Sie es nur auf diese Weise (erste Zeile Datetime nur somethng neu auf diesen Thread zu bringen, ich es verwenden Server überprüfen Zeit):

$dt = new DateTime("@".$_SERVER['REQUEST_TIME']); // convert UNIX epoch to PHP DateTime 
$dt = date_modify($dt, "+1 hour"); 

Best,

Verwandte Themen