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] Date fr avec jour de la semaine et mois dans une boucle


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut [Dates] Date fr avec jour de la semaine et mois dans une boucle
    Bonjour,

    Dans une boucle affichant une série de 10 news j'ai entre autre :
    $date = $data['date'];
    $date correspond vous vous en doutez sans doute à la date extraite de la bdd.

    Je voudrais afficher les dates sous la forme "Lundi 19 décembre 2005".
    J'ai trouvé un script sur Internet qui converti les dates us en dates fr avec jours et mois.

    Mais je n'arrive pas à l'intérgrer afin de pouvoir afficher mes dates en français.

    Pourriez-vous m'aider svp :- ?

  2. #2
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Avec date et strtotime comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo date("d:m:Y H:i",strtotime($date));

  3. #3
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Il faut convertir la date en timestamp en utilisant la fonction strtotime par exemple (Y'a une fonction MySQL qui le fait aussi).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $timestamp = strtotime($date);
    setlocale(LC_TIME, "fr");
    echo strftime("%A %d %B %Y", $timestamp);

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Oui mais tout ça va m'afficher la date sous cette forme : le 19 12 2005
    Alors que j'aimerais avoir ma date sous cette forme : le lundi 19 décembre 2005.
    D'où mon lien vers la fonction magique .

  5. #5
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Est tu sur d'avoir essayer l'exemple de Linaa ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par GregPeck
    Est tu sur d'avoir essayer l'exemple de Linaa ?
    Ca me donne : Le Monday 19 December 2005,
    Je préfèrerais en français ^^.

  7. #7
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Dans ce cas, c'est que tu as un problème avec tes locales, parce que c'est le but de faire setlocale(LC_TIME, "fr");

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Mmm ben je suis sur un pti 60gp OVH. Ca viendrait du serveur ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
    $date = date("Y-m-d H:i:s");
    $timestamp = strtotime($date);
    setlocale(LC_TIME, "fr");
    echo strftime("%A %d %B %Y", $timestamp);
    ?>
    --> "Monday 19 December 2005" .

  9. #9
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Citation Envoyé par yazerty
    Mmm ben je suis sur un pti 60gp OVH. Ca viendrait du serveur ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
    $date = date("Y-m-d H:i:s");
    $timestamp = strtotime($date);
    setlocale(LC_TIME, "fr");
    echo strftime("%A %d %B %Y", $timestamp);
    ?>
    --> "Monday 19 December 2005" .
    Surement, chez mon hébergeur aussi ça le fait!
    J'crois que c'est parce qu'on a pas les droits pour le modifier
    En tout cas, ça marche en local!

    Sinon, en utillisant leur script tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    //--- Les noms des jours en français 
    $jour{0} = "dimanche";  
    $jour{1} = "lundi";  
    $jour{2} = "mardi";  
    $jour{3} = "mercredi";  
    $jour{4} = "jeudi";  
    $jour{5} = "vendredi";  
    $jour{6} = "samedi";    
    //--- Les noms des mois en français 
    $mois{1} = "janvier";  
    $mois{2} = "février";  
    $mois{3} = "mars";  
    $mois{4} = "avril";  
    $mois{5} = "mai";  
    $mois{6} = "juin";  
    $mois{7} = "juillet";  
    $mois{8} = "août";  
    $mois{9} = "septembre";  
    $mois{10} = "octobre";  
    $mois{11} = "novembre";  
    $mois{12} = "décembre";   
     
    $timestamp = strtotime($date);
    $d = date("w/j/m/y",$timestamp);
     
    $date = explode("/",$d);
    $date_fr = $jour{$d[0]}." ".$d[1]." ".$mois{$d[2]}." ".$d[3];
    echo $date_fr;
    w->jour de la semaine
    j->jour du mois
    m->mois
    y->annee

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Dommage pour Ovh, parce que ça aurait effectivement été très pratique !!

    Sinon Linaa, ça me donne ça ton code : "lundi / janvier 9"
    Mais ça ne risque pas de faire baisser la performance du script le explode() :- ? Je ne sais pas hein, je ne suis pas du tout connaisseur de la chose vous l'aurez compris

    En fait mon problème avec la fonction dont j'ai donné le lien c'est que je n'arrive pas à l'intégrer dans ma boucle.
    Dans cette boucle je prend le champ date de la news et je l'obtiens donc sous cette forme :
    $date = 2005-12-17 14:05:23
    Mais après je ne comprends pas comment pouicher la chose avec la fonction sans que ça fasse d'erreur ou de truc incohérants.

  11. #11
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Me suis juste trompée entre les $d et $date, voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_fr = $jour{$date[0]}." ".$date[1]." ".$mois{$date[2]}." ".$date[3];
    Le explode() sert juste à séparer une chaine selon un séparateur, ici le /, et les mettre dans un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    array(4) {
      [0]=>
      string(1) "1"
      [1]=>
      string(2) "19"
      [2]=>
      string(2) "12"
      [3]=>
      string(2) "05"
    }

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Merciii !

    Le résultat est sur La boîte à rêves (encore en (re)développement...)

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par yazerty
    Mmm ben je suis sur un pti 60gp OVH. Ca viendrait du serveur ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
    $date = date("Y-m-d H:i:s");
    $timestamp = strtotime($date);
    setlocale(LC_TIME, "fr");
    echo strftime("%A %d %B %Y", $timestamp);
    ?>
    --> "Monday 19 December 2005" .
    Mmm en fait voici le code qui marche sur OVH :

    function date_fr($date){
    $timestamp = strtotime($date);
    setlocale(LC_TIME,"fr_FR");
    echo strftime("%A %d %B %Y à %H:%M", $timestamp);
    }
    Je préfère donc utiliser ce code, plus rapide et efficace.

  14. #14
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Les minutes c'est %M.

    Tu as la liste ici http://fr.php.net/manual/fr/function.strftime.php

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Oh, j'ai trouvé entre temps et édité mon post avant de voir ton message, désolé .

    Merci quand même !

    ps : c'est trompeur le fait que ce ne soit pas les mêmes désignations qu'avec date() quand même.

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

Discussions similaires

  1. [Dates] fonction vérifiant le jour de la semaine
    Par Flynt dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2008, 17h04
  2. Réponses: 7
    Dernier message: 01/12/2007, 03h23
  3. Réponses: 3
    Dernier message: 25/03/2007, 19h03
  4. [Dates] Connaitre le permier jour de la semaine 13
    Par PrinceMaster77 dans le forum Langage
    Réponses: 4
    Dernier message: 04/01/2007, 00h50
  5. [Dates] comment récupérer le jour de la semaine ?
    Par magic8392 dans le forum Langage
    Réponses: 5
    Dernier message: 13/09/2005, 16h01

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