Heim >Datenbank >MySQL-Tutorial >Wie behebe ich Inkompatibilitäten im PHP- und MySQL-Datumsformat bei der Verwendung von jQuery Datepicker?

Wie behebe ich Inkompatibilitäten im PHP- und MySQL-Datumsformat bei der Verwendung von jQuery Datepicker?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 13:37:161018Durchsuche

How to Resolve PHP and MySQL Date Format Incompatibilities When Using jQuery Datepicker?

Probleme mit dem PHP-MySQL-Datumsformat

Bei Verwendung des jQuery-Datumswählers mit einem bestimmten Format (z. B. „25.08.2012“) Das Einfügen des ausgewählten Datums in eine MySQL-Datenbank als Datumswert kann zu Fehlern führen und den Standardwert „0000-00-00“ anzeigen 00:00:00" stattdessen.

Grund:

Laut MySQL-Dokumentation erkennt MySQL Datumswerte in bestimmten Formaten, einschließlich „JJJJ-MM-TT“ oder „JJ-MM-TT“. Das von der jQuery-Datumsauswahl verwendete Format ('25.08.2012') wird von MySQL nicht direkt erkannt.

Lösungen:

Es gibt mehrere Möglichkeiten, dieses Problem zu beheben Problem:

1. Verwenden Sie AltField, um das Format zu konvertieren:

Konfigurieren Sie die Datumsauswahl mithilfe der Optionen „altField“ und „altFormat“ so, dass Datumsangaben in einem unterstützten Format bereitgestellt werden. Dadurch wird ein verstecktes Feld erstellt, das das Datum im gewünschten Format enthält.

2. Verwenden Sie die STR_TO_DATE()-Funktion von MySQL:

Diese Funktion kann die empfangene Zeichenfolge in einen gültigen MySQL-Datumswert umwandeln. Verwenden Sie es wie folgt:

INSERT INTO user_date VALUES('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))

3. Datum in PHP-DateTime-Objekt konvertieren:

Verwenden Sie das DateTime-Objekt von PHP, um die empfangene Zeichenfolge in ein Datumsformat zu konvertieren, das PHP versteht.

$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);

4. String manuell bearbeiten:

Wenn keine der oben genannten Optionen funktioniert, können Sie den empfangenen String manuell in ein gültiges MySQL-Datumsliteral manipulieren.

$parts = explode('/', $_POST['date']);
$date = "$parts[2]-$parts[0]-$parts[1]";

Achtung:

  • Der in der Frage bereitgestellte Code ist anfällig für SQL-Injection. Erwägen Sie die Verwendung vorbereiteter Anweisungen mit Parametern, um diese Sicherheitslücke zu verhindern.
  • Die Erweiterung mysql_* ist ab PHP 5.5.0 veraltet. Verwenden Sie stattdessen mysqli oder PDO_MySQL.
  • Erwägen Sie die Verwendung des Datentyps DATE anstelle von DATETIME oder TIMESTAMP zum Speichern von Datumsangaben.

Das obige ist der detaillierte Inhalt vonWie behebe ich Inkompatibilitäten im PHP- und MySQL-Datumsformat bei der Verwendung von jQuery Datepicker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn