Maison > développement back-end > tutoriel php > Comment puis-je valider de manière fiable les chaînes de date avec des formats spécifiques en PHP ?

Comment puis-je valider de manière fiable les chaînes de date avec des formats spécifiques en PHP ?

Barbara Streisand
Libérer: 2024-12-20 16:20:14
original
1033 Les gens l'ont consulté

How Can I Reliably Validate Date Strings with Specific Formats in PHP?

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);
}
Copier après la connexion

Considérations supplémentaires

La fonction validateDate() utilise les critères suivants pour garantir la précision :

  • La chaîne d'origine doit être transformée en DateTime object.
  • La représentation formatée de l'objet DateTime doit correspondre exactement à la chaîne fournie.

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal