Heim >Datenbank >MySQL-Tutorial >Wie löse ich Datumsformatkonflikte beim Einfügen von Datumsangaben aus PHP in MySQL?
Datumsformatdiskrepanzen bei PHP-MySQL-Einfügungen
Beim Versuch, Datumsangaben mit PHP in eine MySQL-Datenbank einzufügen, können Benutzer aufgrund von Fehlern auf Fehler stoßen Formatkonflikte. Das beliebte jQuery-Datumsauswahlformat „25.08.2012“ steht in Konflikt mit den von MySQL unterstützten Datumsformaten.
Um dieses Problem zu beheben, ist es wichtig, die Datumsliteralanforderungen von MySQL zu verstehen:
Da das Format „25.08.2012“ nicht diesen Regeln entspricht, muss es konvertiert werden. Es stehen mehrere Optionen zur Verfügung:
1. Konvertieren Sie das jQuery Datepicker-Format
Konfigurieren Sie den Datepicker so, dass Datumsangaben in einem unterstützten Format bereitgestellt werden:
$( "selector" ).datepicker({ altField : "#actualDate" altFormat: "yyyy-mm-dd" });
Oder legen Sie die dateFormat-Option fest:
$( "selector" ).datepicker({ dateFormat: "yyyy-mm-dd" });
2. Verwenden Sie die STR_TO_DATE()-Funktion von MySQL
Konvertieren Sie die Zeichenfolge während des Einfügens:
INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
3. Konvertieren mit dem DateTime-Objekt von PHP
Erhalten Sie eine geeignete formatierte Zeichenfolge oder einen UNIX-Zeitstempel:
$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']); $date = $dt->format('Y-m-d'); $timestamp = $dt->getTimestamp();
Für das Einfügen von UNIX-Zeitstempeln:
INSERT INTO user_date VALUES ('', '$name', FROM_UNIXTIME($timestamp))
4 . Manuelle String-Manipulation
Extrahieren Sie die Datumsteile und verketten Sie sie in einem gültigen Format:
$parts = explode('/', $_POST['date']); $date = "$parts[2]-$parts[0]-$parts[1]";
Achtung:
Das obige ist der detaillierte Inhalt vonWie löse ich Datumsformatkonflikte beim Einfügen von Datumsangaben aus PHP in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!