Date ansi sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 059 fois - Téléchargée 15 fois

Contenu du snippet

Valide le format de date ANSI SQL "YYYY-mm-dd hh:mi:ss am/pm"

Permet l'utilisation de "/", "-", " " pour délimités les dates de sorte que 2008-09-17 fonctionne aussi bien que 2008/09/17

Ce code prend en charge les années bissextile de 1901 à 2099.

Source / Exemple :


^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$

Conclusion :


Retourne vrai:
2004-2-29
2004-02-29 10:29:39 pm
2004/12/31

Retourne faux:
2003-2-29 (29 février 2003 n'existe pas)
2003-13-02 (le 13e mois n'existe pas)
2003-2-2 10:72:30 am (72 minutes impossible)

A voir également

Ajouter un commentaire

Commentaire

cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24 -
Félicitations pour ce code. Tu aurais pu toutefois utiliser la directive "i" pour ne pas rendre cette expression régulière sensible à la casse au lieu de préciser am et AM, pm et PM. Mais bon, ça ne retire rien au reste et la note finale sera, pour moi, de 10/10.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.