Hinweis : Da die Antwort dieses Beitrags manchmal positiv bewertet wird, bin ich hierher zurückgekommen, um die Leute zu bitten, sie nicht mehr zu bewerten. Meine Antwort ist uralt, technisch nicht korrekt, und hier gibt es mehrere bessere Ansätze. Ich behalte es hier nur zu historischen Zwecken.
Obwohl die Dokumentation die strtotime-Funktion schlecht beschreibt, hat @rjmunro das Problem in seinem Kommentar korrekt angesprochen: Es hat das ISO-Format "JJJJ-MM-TT".
Auch wenn meine Date_Converter-Funktion möglicherweise noch funktioniert, möchte ich Sie warnen, dass es unten möglicherweise ungenaue Anweisungen gibt. Ignorieren Sie sie daher bitte.
Die am häufigsten gewählte Antwort ist tatsächlich falsch!
Das PHP strtotime-Handbuch hier besagt, dass "die Funktion erwartet, eine Zeichenfolge mit einem englischen Datumsformat zu erhalten". Was es tatsächlich bedeutet, ist, dass es ein amerikanisches US-Datumsformat wie "mdY" oder "m / d / Y" erwartet.
Dies bedeutet, dass ein als "Ymd" angegebenes Datum möglicherweise von falsch interpretiert wird strtotime
. Sie sollten das Datum im erwarteten Format angeben.
Ich habe eine kleine Funktion geschrieben, um Datumsangaben in verschiedenen Formaten zurückzugeben. Verwenden und ändern Sie nach Belieben. Wenn jemand daraus eine Klasse macht, würde ich mich freuen, wenn das geteilt würde.
function Date_Converter($date, $locale = "br") {
# Exception
if (is_null($date))
$date = date("m/d/Y H:i:s");
# Let's go ahead and get a string date in case we've
# been given a Unix Time Stamp
if ($locale == "unix")
$date = date("m/d/Y H:i:s", $date);
# Separate Date from Time
$date = explode(" ", $date);
if ($locale == "br") {
# Separate d/m/Y from Date
$date[0] = explode("/", $date[0]);
# Rearrange Date into m/d/Y
$date[0] = $date[0][1] . "/" . $date[0][0] . "/" . $date[0][2];
}
# Return date in all formats
# US
$Return["datetime"]["us"] = implode(" ", $date);
$Return["date"]["us"] = $date[0];
# Universal
$Return["time"] = $date[1];
$Return["unix_datetime"] = strtotime($Return["datetime"]["us"]);
$Return["unix_date"] = strtotime($Return["date"]["us"]);
$Return["getdate"] = getdate($Return["unix_datetime"]);
# BR
$Return["datetime"]["br"] = date("d/m/Y H:i:s", $Return["unix_datetime"]);
$Return["date"]["br"] = date("d/m/Y", $Return["unix_date"]);
# Return
return $Return;
} # End Function