2012-04-13 6 views

Antwort

1

Sie sollten PHP DateTime verwenden. Sie können die supported formats überprüfen und dann ein neues Objekt erstellen:

$date=new DateTime("2012-04-12 16:42:33"); 

Dieses Ziel unterstützt auch die Zeitzonen und andere Umwandlungen zu ändern. eine neue Zeitzone (von PHP-Handbuch) Rahmen:

$date->setTimezone(new DateTimeZone('Pacific/Chatham')); 
1
strtotime('-3 hours', strtotime('2012-04-12 16:42:33')); 

http://php.net/manual/en/function.strtotime.php

Ändern Zeitzonen ist technisch ein wenig komplizierter, da die Art und Weise Ihre Zeitstempel formatiert ist, wir wissen nicht, welche Zeitzone das Original ist in. So sollte dieser Code genügen.

+0

dass Code in Unix-Zeitstempel konvertiert, was ist mit dem Ausdrucken einer menschenfreundlichen Version? – Francesco

+0

@Francesco, PHP '' date() 'verwenden, um es zu formatieren, wie Sie wollen: http://php.net/manual/en/function.date.php – Brad

0
$hours = 3; 

$time_old = "2012-04-12 16:42:33"; 

$time_new = strtotime($time_old); 

$time_new = $time_new - (60 * $hours); 

date($time_new); 

Dies ermöglicht Ihnen, dynamisch die Stunden durch $hours Wechsel zu ändern.

+0

Sie subtrahieren Minuten, nicht Sekunden; Du brauchst noch ein '60 *'. Aber ich würde dringend vorschlagen _not_ eine manuelle Subtraktion von Sekunden hinzufügen, weil es ignoriert [Sommerzeit] (http://en.wikipedia.org/wiki/Daylight_saving_time) wo anwendbar. Ein Beispiel finden Sie in diesem Kommentar (http://us3.php.net/manual/en/function.strtotime.php#97025). – Wiseguy

+0

Ihr richtiges @Wiseguy, mein Fehler – Dfranc3373

Verwandte Themen