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 :

[Dates] Fonction date


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut [Dates] Fonction date
    De bon matin,

    j'ai la fonction suivante qui me convertit ma date 00/00/0000 en 0000-00-00 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function dateFormat_insert($madate) {
    list($j,$m,$a)=explode("/",$madate);
    $date="$a-$m-$j";
    return $date;
    }
    Mais je me suis rendu compte quun utilisateur pouvait rentrer une date sous la forme 00000000.
    Et javoue que jai un peu de mal a reconceptualiser la focntion pour quelle prenne ca en compte ! Je ne peux pas faire d'explode vu que jai pas de separateur !

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $date=substr($madate,0,4)."-".substr($madate,4,2)."-".substr($madate,6,6);
    a+
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Merci
    Et comment je fais le distingo entre le format 00/00/0000 et 00000000 ?

  4. #4
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Bonjour,
    si ton explode ne trouve pas le separateur(/), il retournera un tableua avec un seul enregistrement (count()) et dans ce cas la tu sera confonte a ton cas 00000000
    Si separator contient une valeur qui n'est pas contenue dans string, alors explode() retournera un tableau, contenant la chaîne string entière.
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Mais si je te suis bien je ne dois logiquement rien changer dans ma fonction ! Il devrait me convertir automatiquement mon 00000000 en 0000-00-00. Or ce nest pas le cas ..
    cest pour ca que je pense quil faut que je mette un if pour faire le distingo entre les deux formats possibles !
    Non?

  6. #6
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    bien sur qu'il faut que tu teste. Tu declare un tableau = ton explode et tu teste le nombre d'\enregistremnts dans ce tableau->count(). Si count(du tableau) == 1 => solution de gilmaire
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  7. #7
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut,

    La réponse se trouve chez Yannis

    Si il n'y a pas de séparateur tu auras un count() à 1
    Tu fais ton if la-dessus

    Dans le code que je t'ai donné il y a des erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $date=substr($madate,0,2)."-".substr($madate,2,2)."-".substr($madate,4,4);
    A+

    Je suis pas assez rapide !!!
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Voici le code definitif qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function dateFormat_insert($madate) {
    $tableau= explode ("/",$madate);
    if(count($tableau)==1){
    	$date=substr($madate,4,4)."-".substr($madate,2,2)."-".substr($madate,0,2);
    }
    else{
    	list($j,$m,$a)=$tableau;
    	$date="$a-$m-$j";
    }
    return $date;
    }
    Effectivement il y avait une erreur dans la formule substr !

  9. #9
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Citation Envoyé par dafalri
    Voici le code definitif qui fonctionne :


    es tu sur que cela fonctionne ? j'ai des doute sur tes substr

    http://gr2.php.net/manual/fr/function.substr.php
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Bah oui ca fonctionne ...
    Justement le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date=substr($madate,0,2)."-".substr($madate,2,2)."-".substr($madate,4,4);
    me retourne 00-00-0000
    or je voulais 0000-00-00, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date=substr($madate,4,4)."-".substr($madate,2,2)."-".substr($madate,0,2);

  11. #11
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Bon ok, alors pense au petit tag si ta fonction marche correctement
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  12. #12
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    J'ai quelques doutes aussi, cette partie du substr:

    ne decvrait rien te retourner puisque tu lui demandes les caractères de ta chaine compris entre les position 4 et 4...

    De même pour le

  13. #13
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    +1 xave, mais il dit que ca fonctionne
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    meuh non ... menfin : substr (4,4) cest les 4 caracteres a partir du 4ieme caractere !

  15. #15
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    euhhhh...... oui c'est vrai

    mais que se passe-t-il si un utilisateur t'envoie 20051225 (25-12-2005) cela va te renvoyer la date 2512-20-05. As tu pense a cela?
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  16. #16
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Citation Envoyé par dafalri
    meuh non ... menfin : substr (4,4) cest les 4 caracteres a partir du 4ieme caractere !
    Euh..., en effet.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Ah quand meme ... vous avez commence a me faire douter !
    je prefere ne pas pense aux autres possibilites ... qui narriveront jamais dailleurs !

  18. #18
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Citation Envoyé par dafalri
    Ah quand meme ... vous avez commence a me faire douter !
    je prefere ne pas pense aux autres possibilites ... qui narriveront jamais dailleurs !
    optimiste va
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    En tout cas un grand merci a vous !

    Et je suis heureux de vous avoir appris quelque chose

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

Discussions similaires

  1. [Dates] fonction date et heure toujours actualisée
    Par Levava dans le forum Langage
    Réponses: 3
    Dernier message: 01/06/2008, 13h43
  2. [Dates] fonction date à devenir fou
    Par jbtz64 dans le forum Langage
    Réponses: 2
    Dernier message: 31/05/2008, 18h07
  3. [Dates] fonction date avec argument timestamp
    Par nicoda dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2008, 16h55
  4. [Dates] Fonction date non apparue
    Par kev484 dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2007, 18h43
  5. [Dates] Fonction date: ajouter 3 jours à une date
    Par bobic dans le forum Langage
    Réponses: 8
    Dernier message: 12/03/2007, 11h05

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