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

Comment insérer correctement les dates de jQuery Datepicker dans MySQL en utilisant PHP ?

Susan Sarandon
Libérer: 2024-11-28 08:36:15
original
737 Les gens l'ont consulté

How to Correctly Insert Dates from jQuery Datepicker into MySQL Using PHP?

Insertion de formats de date dans MySQL à l'aide de PHP

Lorsque vous travaillez avec la base de données MySQL, il est essentiel de formater correctement les valeurs de date lors de l'insertion. Un problème courant consiste à insérer des dates dans un format incorrect, ce qui entraîne des erreurs de base de données.

Problème :

Vous utilisez le sélecteur de date jQuery, qui renvoie les dates en 'MM /JJ/AAAA'. Cependant, MySQL attend les dates dans des formats spécifiques, tels que « AAAA-MM-JJ », « AA-MM-JJ » ou « AAAAMMJJ ». L'insertion de dates dans un format incorrect entraînera l'insertion de « 0000-00-00 00 00 00 ».

Solution :

Il existe plusieurs façons de résoudre ce problème. :

  • Utilisez les champs altField et altFormat du Datepicker options : Configurez le sélecteur de date pour fournir des dates dans un format pris en charge en définissant les options altField et altFormat. Par exemple :
<input type="hidden">
Copier après la connexion
  • Convertissez la chaîne à l'aide de la fonction STR_TO_DATE() de MySQL : Convertissez la chaîne de date reçue de jQuery dans un format MySQL valide à 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
  • Utiliser PHP Classe DateTime : Convertissez la chaîne en un objet PHP DateTime, puis obtenez une chaîne formatée appropriée ou un horodatage UNIX :
$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
$date = $dt->format('Y-m-d'); // Formatted string
$timestamp = $dt->getTimestamp(); // UNIX timestamp
Copier après la connexion
  • Manipulez manuellement la chaîne : Divisez manuellement la chaîne de date en ses composants et assemblez-la correctement format :
$parts = explode('/', $_POST['date']);
$date = "$parts[2]-$parts[0]-$parts[1]";
Copier après la connexion

Attention :

  1. Évitez l'injection SQL : Assurez-vous d'utiliser des instructions préparées pour empêcher SQL vulnérabilités d'injection.
  2. Utilisez le type DATE au lieu de DATETIME ou TIMESTAMP :Le type DATE est recommandé pour stocker des valeurs de date pures sans composantes temporelles.

Remarques supplémentaires :

  • Les fonctions mysql_* sont obsolètes dans PHP 5.5.0 et doivent être remplacés par mysqli ou PDO_MySQL extensions.
  • La fonction STR_TO_DATE() nécessite que la variable système date_format soit définie au format approprié pour analyser la chaîne de date.

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