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 : 74
    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+

  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.

  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

  7. #7
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    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 !!!

  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

  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

  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

  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?

  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

  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