Comprendre l'erreur "Une valeur numérique non bien formée rencontrée" en PHP
Lorsque vous essayez de valider les dates transmises à partir d'un formulaire, vous pouvez rencontrer l'erreur "Une valeur numérique non bien formée a été rencontrée." Cette erreur indique que vous essayez d'utiliser une valeur qui n'est pas un nombre bien formé.
Dans votre cas spécifique, vous obtenez cette erreur en essayant d'utiliser la fonction date() avec un paramètre GET. représentant une date de début. Le problème se pose car ce paramètre est transmis sous forme de chaîne au format « 2020-10-10 » ou « 2020/10/10 », ce qui n'est pas une valeur numérique valide pour la fonction date().
Résoudre le problème
Pour résoudre ce problème, vous devez convertir le paramètre de date en valeur numérique avant de le transmettre à la date() fonction. Vous pouvez utiliser la fonction strtotime() pour convertir la représentation de la date sous forme de chaîne en un nombre de secondes. Voici le code corrigé :
date("d", strtotime($_GET['start_date']));
Considérations supplémentaires
Il est crucial de comprendre la cause première de ce type d'erreur. Chaque fois que vous rencontrez une telle erreur, vous devez d'abord rechercher la valeur du problème à l'aide de var_dump(). Cela vous aidera à déterminer les éléments suivants :
Ne jamais recourir à convertir aveuglément la valeur du problème en un nombre, car cela masquerait le problème réel et conduirait potentiellement à des résultats incorrects.
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!