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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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

  6. #6
    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 :/

  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
    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]));
     
    ?>

  9. #9
    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 !!

  10. #10
    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

  11. #11
    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 )

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

Discussions similaires

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

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