2012-04-11 10 views
-1

Wie würde ich 2012-04-11 12:49:14 in einen unixime Stempel verwandeln?Wie wird das Datum in den Zeitstempel umgewandelt?

Ich habe

versucht
$time = mktime("2012-04-11 12:59:14"); 

und

$time = strtotime("2012-04-11 12:59:14"); 

EDIT Grundsätzlich auf aktualisieren meiner Datenbank ein Datum/Zeit hinzufügt, die wie folgt aussieht.

2012-04-11 12:49:14 

Ich brauche es in einen Unix-Zeitstempel umgewandelt werden, so dass ich eine "Zeit her" -Funktion verwenden kann, die ich gefunden habe.

haben Meine Tests ergaben,

Datenbank-Eingang -> 2012-04-11 13.22.05, die in umgewandelt wird -> 1334143355 -> Aber die aktuelle Zeit aus (time()) -> 1334146956

Ich sehe nicht, warum sie nicht zusammenpassen?

+5

Inwiefern funktioniert Ihr zweites Beispiel nicht? [Sieht perfekt aus für mich] (http://codepad.viper-7.com/BpLNII). –

+0

Was funktioniert nicht? Erhalten Sie einen Fehler? – liquorvicar

+0

Sie könnten es auch in MySQL mit dem ['UNIX_TIMESTAMP()'] tun (http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp) Funktion. –

Antwort

2

Es klingt wie ein Problem mit nicht übereinstimmenden Zeitversätzen (Sommerzeit vielleicht). Es ist immer am besten, alles in PHP oder alle in MySQL zu tun, um nicht übereinstimmende Zeitversätze zu vermeiden.

1334146484 - 1334142872 = 3612s = 1h 12s 

Sie sollten UNIX_TIMESTAMP verwenden entweder beim Einsetzen oder das Abrufen von Daten abhängig davon, ob Sie als Unix-Zeitstempel oder Datumzeit bevorzugen Speicherung -

INSERT INTO `table` (date_field) VALUES (UNIX_TIMESTAMP('2012-04-11 12:59:14')); 

SELECT UNIX_TIMESTAMP(date_field) FROM `table`; 
+0

Perfekt, danke :) – Harry

+0

Stellen Sie auch sicher, dass PHP und MySQL beide die gleiche Zeitzone/Offset-Set haben. Es lohnt sich auch, die neue DateTime-Klasse zu untersuchen, da sie Zeitzonen/Offsets für Sie verarbeiten kann. – liquorvicar

+0

@liquorvicar: Wenn Sie ** all ** MySQL oder ** all ** PHP verwenden, sollte es egal sein, ob PHP und MySQL die gleiche Zeitzone haben. Recht? – Travesty3

4

Die Aussage $time = strtotime("2012-04-11 12:59:14"); funktioniert gut.

ein

echo $time; 

nach Ihrer Erklärung tun.

1

Ich erwarte, dass der Unterschied in einer anderen Zeitzone ist. Der Unterschied ist mehr oder weniger +1 Stunde vom erwarteten Ergebnis. Sie müssen genauer angeben, wie viel Zeit Sie haben möchten - zum Beispiel, wenn Sie Zeit von Ihrer Zeitzone oder von UTC aufzeichnen/abrufen.

0

$time = strtotime("2012-04-11 12:59:14"); richtige Option ist.

Verwandte Themen