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] Affichage en FR


Sujet :

Langage PHP

  1. #1
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut [Dates] Affichage en FR
    Bonjour a tous,
    vous savez peut etre que je suis un pro des conversions de date, lol
    je vous donne se que j'ai, et se que je veux et le but du jeu, c'est d'y arriver mais moi, je patoge un peu.
    J'ai une date de ma base de donnée affichée
    Wed Jun 7 18:53:53 2006
    je voudrais l'avoir en
    Mer 7 Juin 2006 - 18:53:53
    ou un truc dans le style.

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Salut,

    En fait, j'aimerais apporter une petite précision : dans ta base de données, tu n'as pas "Wed Jun 7 18:53:53 2006", mais en général, tu as un unsigned long qui représente le nombre de millisecondes à partir du 1 janvier 1970 ( ou quelque chose du style, je ne suis jamais sûr ). L'important est de connaitre les fonctions soit de ton SGBDR, soit de ton langage d'application, pour interpreter ce chiffre, dans la locale que tu veux, et dans le format que tu veux.

    Quelles fonctions as-tu dans ton SGBDR pour le traitement des dates ?

    A+

  3. #3
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut
    j'ai ça ne base
    ensuite j'execute ma requete et retourne un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    	$sth = mssql_query($sql);
    	while ($ligne = mssql_fetch_array ($sth))
      	{		
          	$tab[] = $ligne; 
        	}
    	return $tab;
    ensuite j'affiche ma date en brute
    et j'ai
    Wed Jun 7 18:53:53 2006

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Il faut que tu regardes la fonction gmstrftime en PHP, ou bien la fonction CONVERT en Transact-SQL.

    Sans vouloir faire le prof, je peux expliquer vite fait ce qu'il se passe ?

    j'ai ça ne base
    Code :

    17/07/2006 11:20:20
    En fait, comme je te l'ai dit, en base, physiquement, tu as un unsigned long. Ce que tu vois là, c'est ton outil SGBDR qui te retranscrit le long en une date, avec un settings par default. J'imagine que tu utilises SQL Server Entreprise Manager.

    ensuite j'affiche ma date en brute
    Code :

    $tab[$i]["DATE"]

    et j'ai
    Citation:
    Wed Jun 7 18:53:53 2006
    La PHP obtient la date, et le transforme avec son propre affichage par défaut.

    C'est juste parce que tu as dit que tu étais mal à l'aise avec les dates, peut-être que cette vision te simplifie les choses, sans avoir la prétention d'être exhaustive. A+

  5. #5
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127

  6. #6
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    C'est cette fonction PHP qu'il faut utiliser : strftime et pas celle que j'ai donnée dans mon post ( qui concerne les dates en GMT/UTC )

  7. #7
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut
    merci pour le détail, je me doutais bien que c'était à cause de ça car j'ai déja eu le soucis avec un serveur en Anglais et l'autre en Francais qui n'intérprêtaient pas les memes choses
    La fonction que tu m'a donnée ne fonctionne pas dans mon cas, en tout cas je n'arrive pas à la faire fonctionner, j'avais déja essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setlocale(LC_TIME, "fr", "fr_FR");
    print  strftime("%b %d %Y %H:%M:%S", $tab[$i]["DATE"])
    mais ça me renvoi toujours
    Jan 01 1970 01:00:00 Jan 01 1970 00:00:00
    en fait je ne sais pas comment passer mon

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setlocale(LC_TIME, 'French');
    Linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setlocale(LC_TIME, 'fr_FR');
    Les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setlocale(LC_TIME, 'French', 'fr_FR');
    Note : il peut y avoir encore d'autres settings mais je ne les connais pas par coeur :/

  9. #9
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut
    merci pour le détail, je me doutais bien que c'était à cause de ça car j'ai déja eu le soucis avec un serveur en Anglais et l'autre en Francais qui n'intérprêtaient pas les memes choses
    La fonction que tu m'a donnée ne fonctionne pas dans mon cas, en tout cas je n'arrive pas à la faire fonctionner, j'avais déja essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setlocale(LC_TIME, "fr", "fr_FR");
    print  strftime("%b %d %Y %H:%M:%S", $tab[$i]["DATE"])
    mais ça me renvoi toujours
    Jan 01 1970 01:00:00 Jan 01 1970 00:00:00
    en fait je ne sais pas comment passer mon

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    date_default_timezone_set('Europe/Paris');
    setlocale(LC_TIME, 'French', 'fr_FR');
     
    $date = sscanf('17/07/2006 11:20:20', '%d/%d/%d %d:%d:%d');
    echo strftime("%b %d %Y %H:%M:%S", mktime($date[3], $date[4], $date[5], $date[1], $date[0], $date[2]));
     
    ?>

  11. #11
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR.ISO8859-1');
    sur la FAQ !!
    tu peux en plus rajouter French !!

  12. #12
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut
    désolé pour le double post, problème réseau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print  strftime("%b %d %Y %H:%M:%S", time('$tab[$i]["DATE"]'))
    me renvoi toujours
    Jul 18 2006 11:44:06
    meme si je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print  strftime("%b %d %Y %H:%M:%S", time(''))
    tu est sur de ton time ? je ne veux pas la date courante mais celle de ma bd

  13. #13
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    A lala si même les modos et rédacteurs ne lisent plus la FAQ, ou allons nous ?....




    ok patapé

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Relis ma réponse, je l'ai modifiée.

  15. #15
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut
    bon si on édite nos sujet a chaque fois on va pas s'en sortir
    Afficher la date d'aujourd'hui en Francais, ça je gère, et c'est vrai que la faq présente une solution.
    dans mon cas, les setLocal ni font rien, voula ou j'en suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setlocale(LC_TIME, 'French', 'fr_FR');
    $date = sscanf($tab[$i]["DATE"], '%d/%d/%d %d:%d:%d');
    echo strftime("%b %d %Y %H:%M:%S", mktime($date[3], $date[4], $date[5], $date[1], $date[0], $date[2]));
    m'affiche
    Jan 01 1970 00:59:59
    pour toutes les dates, c'est normal les gens ?

    c'est moi qui comprend rien ou ça ne marche pas ?

  16. #16
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    A non ca c'est pô normal

    Bon je cherche...apres manger

  17. #17
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    si tu passes par mktime, pourquoi ne pas faire un date() après ?
    tu trouvera les même options dans date pour afficher correctement Jan 01 1970 00:59:59

  18. #18
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Disons que je suis parti de ce que tu as "en base", pas de ce que semble contenir $tab[$i]["DATE"] (si j'ai bien compris ton premier message, ce n'est pas la même chose).
    Il faut partir des données brutes (numériques) pour les convertir en chaînes, sinon c'est clair qu'on s'en sortira jamais :/

    [Edit] Maxoo, strftime() donne davantage d'options chaîne que date().

  19. #19
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut
    bon, je vais reprendre mes variables de A à Z et je viens vous voir si vraiement le problème viens d'autre part, j'ai le site complet en Ajax et ya des bug un peut bizard des fois

  20. #20
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 852
    Par défaut
    Alors pour résumer, j'ai une boucle ou je place ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setlocale(LC_TIME, 'French', 'fr_FR');
    print $tab[$i]["DATE"];
    et je récupère ça dans IE
    Thu Jul 6 12:42:42 2006
    Tue Jun 20 18:43:43 2006
    Mon Jun 12 11:55:55 2006
    Wed Jun 7 18:55:55 2006
    Wed Jun 7 18:53:53 2006
    Bonne Apetit !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Dates] Affichage d'une variable
    Par claudesou dans le forum Langage
    Réponses: 3
    Dernier message: 29/05/2006, 10h08
  2. [Dates] Affichage de l'heure
    Par HwRZxLc4 dans le forum Langage
    Réponses: 17
    Dernier message: 22/05/2006, 15h48
  3. [Dates] affichage différent selon le mois en cours
    Par itri2005 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 17h05
  4. Réponses: 7
    Dernier message: 05/04/2006, 11h22
  5. [Dates] affichage date
    Par stomerfull dans le forum Langage
    Réponses: 2
    Dernier message: 01/02/2006, 12h32

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