Maison >développement back-end >tutoriel php >Comment insérer correctement les dates de PHP dans MySQL ?

Comment insérer correctement les dates de PHP dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-27 03:56:12373parcourir

How to Properly Insert Dates from PHP into MySQL?

Comment insérer des dates dans MySQL à l'aide de PHP

Insérer des dates dans MySQL peut être une tâche déroutante, en particulier lorsque vous utilisez différents formats de date. Cet article montrera comment résoudre le problème courant de l'insertion de dates à l'aide de PHP et MySQL, en se concentrant sur le problème "PHP mysql insert date format".

Le problème

Lorsque vous utilisez le sélecteur de date jQuery, le format de date est généralement sous la forme « MM/JJ/AAAA » (par exemple, « 25/08/2012 »). Cependant, MySQL exige que les valeurs de date soient dans l'un des formats suivants :

  • 'YYYY-MM-DD'
  • 'YY-MM-DD'
  • AAAAMMJJ
  • AAMMJJ

Tentative d'insérer une date dans le Le format "MM/JJ/AAAA" entraînera une erreur et l'insertion de "0000-00-00 00:00:00".

Solution

Il existe plusieurs options pour résoudre ce problème :

  1. Configurer Datepicker : Définir les options altFormat ou dateFormat sur « AAAA-MM-JJ » pour garantir que Datepicker fournit les dates dans le format correct.
  2. Utilisez STR_TO_DATE() : Convertissez la chaîne de date au format MySQL à l'aide de STR_TO_DATE () fonction :
INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
  1. Convertir en PHP DateTime : Créez un objet PHP DateTime et formatez la date ou récupérez l'horodatage :
$dt = DateTime::createFromFormat('m/d/Y', $_POST['date']);
$date = $dt->format('Y-m-d'); // formatted string
$timestamp = $dt->getTimestamp(); // UNIX timestamp for FROM_UNIXTIME() function
  1. Manipuler manuellement la chaîne : Divisez la chaîne de date en parties et concaténez-le dans le format requis :
$parts = explode('/', $_POST['date']);
$date = "$parts[2]-$parts[0]-$parts[1]";

Important Notes

  • Utilisez des instructions préparées pour empêcher l'injection SQL.
  • Les fonctions mysql_* sont obsolètes. Pensez à utiliser mysqli ou PDO_MySQL à la place.
  • Envisagez d'utiliser le type DATE au lieu de DATETIME ou TIMESTAMP pour le stockage des dates.

En implémentant l'une de ces solutions, vous pouvez réussir à insérer des dates dans le format correct dans MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn