Maison > développement back-end > tutoriel php > Pourquoi mon expression régulière de date ISO PHP échoue-t-elle et comment puis-je y remédier ?

Pourquoi mon expression régulière de date ISO PHP échoue-t-elle et comment puis-je y remédier ?

Linda Hamilton
Libérer: 2024-12-29 12:22:10
original
404 Les gens l'ont consulté

Why is My PHP ISO Date Regular Expression Failing, and How Can I Fix It?

Pourquoi ma correspondance de modèle de date ISO échoue ?

L'expression régulière fournie ne correspond pas correctement aux dates de style ISO en raison d'un transfert manquant des barres obliques ("/") au début et à la fin du motif. Ces délimiteurs sont essentiels dans la syntaxe regex de PHP. Le modèle corrigé doit être :

/^(?P<year>[0-9]{4})-(?P<month>[0-9]{2})-(?P<day>[0-9]{2}) (?P<hour>[1-2]{1}\d{1}):(?P<min>[0-5]{1}\d{1}):(?P<sec>[0-5]{1}\d{1})$/
Copier après la connexion

Ce modèle définit six groupes de capture pour l'année, le mois, le jour, l'heure, la minute et la seconde.

Approche alternative : utilisation de DateTime Class

Bien que l'utilisation de regex puisse être une option, une solution plus élégante consiste à utiliser DateTime de PHP class:

function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}
Copier après la connexion

Cette fonction accepte une chaîne de date et un format facultatif. Il utilise la méthode createFromFormat pour créer un objet DateTime et vérifie si l'objet généré est valide et correspond à la date d'origine.

La fonction validateDate fournit un moyen plus robuste et polyvalent de valider les dates. Il prend en charge une large gamme de formats et peut valider des dates avec différents niveaux de granularité.

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