In einem PHP-Skript tritt ein Problem beim Konvertieren eines über eine URL übergebenen Datums von „tt/mm/jjjj“ auf " in das Format „JJJJ-MM-TT“.
Bei der Verwendung von strtotime() zum Parsen des Datums ist es wichtig, ein gültiges Datum-Uhrzeit-Format sicherzustellen. Das von Ihnen verwendete Format „tt/mm/jjjj“ wird als US-Format interpretiert, wobei die ersten beiden Ziffern den Monat angeben, gefolgt von Tag und Jahr.
Wenn Sie jedoch Daten übergeben, kann dies der Fall sein mehrdeutig ist (z. B. 12.04.2017 oder 04.12.2017), strtotime() kann zu unerwarteten Ergebnissen führen, da davon ausgegangen wird, dass der Monat zuerst kommt.
Um diese Probleme zu vermeiden, wird empfohlen, DateTime: zu verwenden: createFromFormat(), um das Datum zu analysieren und ein DateTime()-Objekt zurückzugeben. Mit diesem Objekt können Sie das Datum in verschiedene Formate konvertieren oder einen Unix-Zeitstempel abrufen.
In Ihrem Fall wird der folgende Code das Datum erfolgreich konvertieren:
<code class="php">$date = DateTime::createFromFormat('m/d/Y', '20/02/2000'); $D->query = $date->format('Y-m-d'); // Outputs: 2000-02-20</code>
Außerdem sind hier einige Tipps zur Vermeidung ähnlicher Probleme:
Das obige ist der detaillierte Inhalt vonWie konvertiert man „TT/MM/JJJJ'-Datumsangaben in PHP-URLs in das „JJJJ-MM-TT'-Format?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!