IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

pattern de date [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut pattern de date
    bonjour,
    j'ai des dates de la forme:
    23/7/2009
    12/10/2010
    6/5/2008
    je veux transformer au format yyy-mm-dd
    donc, j'ai écrit çà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $string="n'importe quoi 23/7/2009 donne une date 12/10/2010 et encore peut-être 6/5/2008";
    $string=eregi_replace("(([[:digit:]]{1,2})\/([[:digit:]]{1,2})\/([[:digit:]]{4}))","\\4-\\3-\\2",$string);
    le problème c'est comment rajouter un 0 quand le jour ou le mois est inférieur à 10 .
    là, je sèche.
    si vous avez une réponse, merci d'avance

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    surement avec str_pad avec 0 sur une longueur de 2. (http://fr.php.net/str_pad)

    Je doute que ce soit possible directement avec une expression régulière.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    merci,
    oui, çà marche pas directement avec un eregi_replace mais il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function Code($annee,$mois,$jour){
    $mois=str_pad($mois,2, "0", STR_PAD_LEFT);
    $jour=str_pad($jour,2, "0", STR_PAD_LEFT);
    $date_complete="|$annee-$mois-$jour";
    return $date_complete;
    }
    $string="n'importe quoi 23/7/2009 donne une date 12/10/2010 et encore peut-être 6/5/2008";
     
    $string=preg_replace('#(([[:digit:]]{1,2})\/([[:digit:]]{1,2})\/([[:digit:]]{4}))#e','Code("\\4","\\3","\\2")',$string);
    et là, çà marche impec!
    merci encore, je ne connaissais str_pad

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Conversion de pattern de Date
    Par FlyByck dans le forum Langage
    Réponses: 7
    Dernier message: 09/12/2009, 09h37
  2. Struts Validation avec plusieurs date pattern, HowTo ?
    Par didleur dans le forum Struts 1
    Réponses: 8
    Dernier message: 08/03/2006, 09h27
  3. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21
  4. Réponses: 3
    Dernier message: 06/05/2002, 18h24
  5. Réponses: 3
    Dernier message: 19/04/2002, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo