Maison >base de données >tutoriel mysql >Comment résoudre les conflits de format de date lors de l'insertion de dates de PHP dans MySQL ?
Différences de format de date dans les insertions PHP MySQL
Lors d'une tentative d'insertion de dates dans une base de données MySQL à l'aide de PHP, les utilisateurs peuvent rencontrer des erreurs dues à incohérences de format. Le format de sélecteur de date jQuery populaire, "25/08/2012", est en conflit avec les formats de date pris en charge par MySQL.
Pour résoudre ce problème, il est essentiel de comprendre les exigences littérales de date de MySQL :
Le format "25/08/2012" n'étant pas conforme à ces règles, il doit être converti. Plusieurs options sont disponibles :
1. Convertir le format jQuery Datepicker
Configurez le sélecteur de date pour fournir les dates dans un format pris en charge :
$( "selector" ).datepicker({ altField : "#actualDate" altFormat: "yyyy-mm-dd" });
Ou définissez l'option dateFormat :
$( "selector" ).datepicker({ dateFormat: "yyyy-mm-dd" });
2. Utilisez la fonction STR_TO_DATE() de MySQL
Convertissez la chaîne lors de l'insertion :
INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
3. Convertir à l'aide de l'objet DateTime de PHP
Obtenir 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'); $timestamp = $dt->getTimestamp();
Pour l'insertion d'un horodatage UNIX :
INSERT INTO user_date VALUES ('', '$name', FROM_UNIXTIME($timestamp))
4 . Manipulation manuelle des chaînes
Extraire les parties de date et les concaténer dans un format valide :
$parts = explode('/', $_POST['date']); $date = "$parts[2]-$parts[0]-$parts[1]";
Attention :
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!