2012-03-29 8 views
0

Ich versuche, ein Zeitformat in dem folgenden Format auf einem Unix-ZeitstempelKonvertieren dieses Datumsformat auf Unix-Zeit in PHP

mit PHP

jn YH zu konvertieren: i: s

Im Versuchen, einen Weg zu finden, um in einen Unix-Zeitstempel zu konvertieren, so dass es in SQL-Datenbanken verwendet werden kann. Ein Beispiel für die Tage, die ich umwandeln müssen:

28 Mar 12 16:37:34

Ich habe versucht, Funktionen namens „strptime“ und „Mktime“, die ich auf Stackoverflow gefunden kein Erfolg - ich bin mir nicht wirklich sicher, was ich mit ihnen mache. Wenn dies die Antwort hier ist, könnte jemand erklären, wie man sie benutzt? Ich habe versucht, die PHP-Dokumentation zu verstehen, aber ich verstehe es einfach nicht.

Der Beitrag las ich hier: PHP date format converting

Antwort

1

echo strtotime('28 Mar 12 16:37:34'); //1332945454

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

+0

Dank! Ich wusste, dass es etwas geben musste, was ich einfach vermisste :) – kirgy

+1

@kirgy: In diesem Fall kann der Ausgabewert von "1332945454" abweichen. Der Zeitstempel hängt von der Zeitzoneneinstellung ab und dieser Code gibt nicht den gleichen Wert für jede Zeitzone aus. Sei dir dessen nur bewusst. Stellen Sie stattdessen Ihre Zeitzone ein, bevor Sie die 'strtotime()' -Funktion verwenden (schauen Sie nach [date_default_timezone_set] (http://php.net/manual/en/function.date-default-timezone-set.php)) oder hängen Sie an Zeitzone/Offset zu Ihrer Saite, etwas wie 'strtotime ('28 Mar 12 16:37:34 UTC ')', 'strtotime ('28 Mar 12 16:37:34 PST')', 'strtotime ('28 Mar 12 16:37:34 UTC + 0200 ') usw. – Wh1T3h4Ck5

+0

danke dafür, ich hatte meinen eigenen XML-Parser geschrieben, dann den Zeitzonen-Teil abgeschnitten, in meinem Fall {+0000} hatte ich Probleme beim Vergleich mit dem aktuellen Systemzeit, weil die Sommerzeit ohne die Zeitzone nicht berücksichtigt wurde. Jetzt mit Zeitzone einschließlich, funktioniert es wie erwartet. – kirgy

2

Wenn Sie DateTime::createFromFormat()

$dt = DateTime::createFromFormat(
    'j M y H:i:s', $dateString, new DateTimeZone('Your/Timezone')); 
$timestamp = $dt->getTimestamp(); 
+0

+1 für ultimative Flexibilität – Niko

0

Die PHP Art und Weise ein Höchstmaß an Flexibilität benötigen, verwenden Sie das Format auf das Parsen ist um date() und strtotime()

zu verwenden

SQL verwendet YYYY-MM-DD HH: MM: SS

$dateTime = date('Y-m-d H:i:s', strtotime('28 Mar 12 16:37:34')); 
+0

Funktion Datum() gibt Timestamp nicht zurück. OP möchte den formatierten Datums-/Uhrzeit-String in den Unix-Zeitstempel konvertieren (Titel & Frage lesen), um die formatierte Zeichenkette nicht von einer zur anderen zu ändern. Ihr Beispiel gibt '' 2012-03-28 16: 37: 34 '' zurück, das ebenfalls eine formatierte Zeichenkette ist. – Wh1T3h4Ck5