PHP mysql insérer le format de date
Lors de l'utilisation d'un sélecteur de date jQuery avec un format 'MM/JJ/AAAA' pour insérer des dates dans un base de données MySQL, vous pouvez rencontrer des erreurs avec la date insérée stockée sous la forme « 0000-00-00 00:00:00 ». Ce problème se produit car le format « MM/JJ/AAAA » n'est pas reconnu comme un littéral de date valide par MySQL.
Selon la documentation MySQL sur les littéraux de date et d'heure, MySQL reconnaît les valeurs DATE dans les formats suivants :
À résoudre ce problème, vous pouvez explorer les options suivantes :
Créez un objet DateTime à partir de la chaîne jQuery datepicker :
$date = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
Ensuite, formatez la date dans un format pris en charge :
$date_string = $dt->format('Y-m-d');
Convertissez la chaîne du sélecteur de date jQuery dans un format compatible MySQL à l'aide de la fonction STR_TO_DATE() :
INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
Divisez la chaîne du sélecteur de date jQuery en parties pour le mois, jour et année, puis créez une chaîne compatible MySQL :
$parts = explode('/', $_POST['date']); $mysql_date = "$parts[2]-$parts[0]-$parts[1]";
Configurez le sélecteur de date pour afficher dates dans un format pris en charge en utilisant dateFormat ou altField altFormat options :
$( "selector" ).datepicker({ dateFormat: "yyyy-mm-dd" });
ou
$( "selector" ).datepicker({ altField: "#actualDate" altFormat: "yyyy-mm-dd" });
Attention :
Il est important de se protéger contre l'injection SQL en utilisant des instructions préparées. De plus, envisagez d'utiliser le type de données DATE dans MySQL pour stocker les dates, car il est spécialement conçu à cet effet.
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!