Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in PHP eine Datumszeichenfolge „y-m-d-h-i-s' in „Y-m-d H:i:s' konvertieren?
Konvertieren von Datumsformaten in PHP
Es kann vorkommen, dass Sie in PHP Datumsformate von einem Format in ein anderes umwandeln müssen. Obwohl PHP mehrere Funktionen zur Datumsmanipulation bietet, ist es wichtig, den Prozess und mögliche Fallstricke zu verstehen.
Stellen Sie sich dieses Szenario vor: Sie haben ein Datum im Format „y-m-d-h-i-s“ und möchten es in das Format „y-m-d-h-i-s“ konvertieren 'Y-m-d H:i:s'-Format. Normalerweise würden Sie strtotime() verwenden, um die Zeichenfolge in einen Zeitstempel umzuwandeln und ihn dann an date() zu übergeben. In Ihrem Fall gibt strtotime() jedoch „false“ zurück, sodass Sie das falsche Datum „1970-01-01 00:00:00“ erhalten.
Das Problem liegt im Format der Eingabezeichenfolge. strtotime() erwartet einen gültigen Zeitstempel oder einen String in einem Format, das es erkennt. Leider ist 'y-m-d-h-i-s' nicht eines dieser anerkannten Formate.
Lösungen
PHP 5.3 und höher
Für PHP 5.3 und höher ist die empfohlene Lösung die Verwendung von DateTime::createFromFormat(). Mit dieser Funktion können Sie mithilfe der date()-Syntax eine genaue Maske angeben, um eingehende Zeichenfolgendaten zu analysieren. In Ihrem Fall würde der Code so aussehen:
$datetime = DateTime::createFromFormat('y-m-d-h-i-s', $old_date); $new_date = $datetime->format('Y-m-d H:i:s');
PHP 5.2 und niedriger
In PHP 5.2 und niedriger müssen Sie die Elemente (Jahr) manuell analysieren , Monat, Tag, Stunde, Minute, Sekunde) mit substr() und geben Sie die Ergebnisse an mktime() weiter, das eine generiert Zeitstempel.
Dieser Ansatz ist jedoch umständlicher. Es ist besser, ein anderes Format zu verwenden, das strftime() verstehen kann und das verschiedene Datumseingabeformate unterstützt. Dieser Code funktioniert beispielsweise:
$old_date = date('l, F d y h:i:s'); $old_date_timestamp = strtotime($old_date); $new_date = date('Y-m-d H:i:s', $old_date_timestamp);
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP eine Datumszeichenfolge „y-m-d-h-i-s' in „Y-m-d H:i:s' konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!