Validation des chaînes de date avec des formats prescrits en PHP
Votre approche actuelle de validation des chaînes de date à l'aide d'une expression régulière peut ne pas toujours donner des résultats précis. Pour résoudre cette limitation, cet article présente une méthode supérieure utilisant la classe DateTime de PHP.
Utilisation de DateTime::createFromFormat()
La fonction DateTime::createFromFormat() de PHP fournit une solution complète pour la validation de chaînes de date avec des formats spécifiques. En passant la chaîne d'entrée et le format souhaité à cette fonction, vous pouvez obtenir un objet DateTime représentant la date.
function validateDate($date, $format = 'Y-m-d') { $d = DateTime::createFromFormat($format, $date); // The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue. return $d && strtolower($d->format($format)) === strtolower($date); }
Considérations supplémentaires
La fonction validateDate() utilise les critères suivants pour garantir la précision :
Cas de test et démo
Le test suivant les cas mettent en valeur la polyvalence de la fonction validateDate() :
var_dump(validateDate('2013-13-01')); // false var_dump(validateDate('20132-13-01')); // false var_dump(validateDate('2013-11-32')); // false var_dump(validateDate('2012-2-25')); // false var_dump(validateDate('2013-12-01')); // true var_dump(validateDate('1970-12-01')); // true var_dump(validateDate('2012-02-29')); // true var_dump(validateDate('2012', 'Y')); // true var_dump(validateDate('12012', 'Y')); // false var_dump(validateDate('2013 DEC 1', 'Y M j')); // true
Essayez la démo en visitant le site fourni lien.
En conclusion, DateTime::createFromFormat() offre une méthode robuste pour valider les chaînes de date en PHP, garantissant précision et flexibilité dans votre code.
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!