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
Libérer: 2024-11-27 03:56:12
original
349 Les gens l'ont consulté

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'))
Copier après la connexion
  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
Copier après la connexion
  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]";
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal