Dans un script PHP, vous rencontrez un problème lors de la conversion d'une date passée via une URL de "jj/mm/aaaa " au format "AAAA-MM-JJ".
Lorsque vous utilisez strtotime() pour analyser la date, il est crucial de garantir un format datetime valide. Le format "jj/mm/aaaa" que vous utilisez est interprété comme le format américain, avec les deux premiers chiffres indiquant le mois, suivis du jour et de l'année.
Cependant, lorsque vous passez des dates qui peuvent être ambigu (par exemple, 12/04/2017 ou 04/12/2017), strtotime() peut donner des résultats inattendus car il suppose que le mois vient en premier.
Pour éviter ces problèmes, il est recommandé d'utiliser DateTime :: createFromFormat() pour analyser la date et renvoyer un objet DateTime(). Cet objet vous permet de convertir la date dans différents formats ou de récupérer un horodatage Unix.
Dans votre cas, le code suivant réussira à convertir la date :
<code class="php">$date = DateTime::createFromFormat('m/d/Y', '20/02/2000'); $D->query = $date->format('Y-m-d'); // Outputs: 2000-02-20</code>
De plus, voici quelques conseils pour éviter des problèmes similaires :
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!