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] Problème avec la fonction date()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut [Dates] Problème avec la fonction date()
    Salut tout le monde, je rencontre un petit problème avec la fonction date() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? echo date("H:i:s", $eclaireur['temps']); ?>
    avec la variable $eclaireur['temps'] définie telle que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $eclaireur = array ( "coutc" => "1000", "couts" => "750", "couth" => "0", "temps" => "180", "capacite" => "500", "vitesse" => "3000", "lvl" => "1" , "conso" => "5", "structure" => "250", "armes" => "100");
    et... je trouve sur mon echo 01:03:00... d'ou sort cette heure supplémentaire, et comment l'enlever ? merci...

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    la second paramètre de date est le timestamp, c'est à dire une valeur absolue qui commence je ne sais plus quel jour à quelle heure (je crois que c'est le 01/01/1970 à 0h00). le 1 doit provenir de l'écart en France avec l'heure GMT

    donc, en y mettant 180, cela n'a certainement rien à voir avec ce que tu désires qui, si je comprends bien, est d'afficher une durée en secondes sous la forme hh:mm:ss.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Citation Envoyé par francis m
    la second paramètre de date est le timestamp, c'est à dire une valeur absolue qui commence je ne sais plus quel jour à quelle heure (je crois que c'est le 01/01/1970 à 0h00). le 1 doit provenir de l'écart en France avec l'heure GMT

    donc, en y mettant 180, cela n'a certainement rien à voir avec ce que tu désires qui, si je comprends bien, est d'afficher une durée en secondes sous la forme hh:mm:ss.

    Non, la fonction date() avec une valeur comme je l'ai indiquée permet de retourner l'affichage de cette heure la en heures minutes secondes et non en secondes.

    Je vais regarder le "date('I') et le date_default_timezone_set() dès que j'ai un peu de temps, merci

    Edit : date('I') me sort 0, et date_default_timezone_get Europe/Paris...


    Re-Edit : en précisant date_default_timezone_set('GMT'); la valeur est bien 3 minutes, mais un echo date("H:i:s"); me renvoie l'heure actuelle - 1... comment résoudre ce probleme ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    J'ai trouvé : utiliser la fonction gmdate() permet d'utiliser le fuseau GMT uniquement pour cette valeur la

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    bon du coups, je poste ma fonction ici, peut etre interessera-t-elle quelqu'un...

    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
    function ShowTemps($temps) {
     $mois = gmdate("n", $temps) - 1;
    if ($mois > 0)
    {
    echo ($mois." mois ");
    }
    $jour = gmdate("d", $temps) - 1;
    if ($jour > 0)
    {
    echo ($jour." jours ");
    }
    if (gmdate("H", $temps) > 0)
    {
    echo (gmdate("H", $temps)." heures ");
    }
    if (gmdate("i", $temps) > 0)
    {
    echo (gmdate("i", $temps)." minutes ");
    }
    if (gmdate("s", $temps) > 0)
    {
    echo (gmdate("s", $temps)." secondes ");
    }
    }
    wali wala

  6. #6
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    C'est à cause des heures d'été/hiver (si je ne raconte pas de conneries). Regarde avec date('I') pour déterminer s'il faut corriger les heures. Regarde aussi bien la doc pour la fonction date() car y a d'autres techniques.

    A partir de php 5.1.0, on peut utiliser date_default_timezone_set() pour remédier à ces problèmes

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

Discussions similaires

  1. [XL-2007] Problème avec la fonction DATE
    Par sweetty dans le forum Excel
    Réponses: 11
    Dernier message: 17/11/2011, 17h17
  2. problème avec la fonction date()
    Par puppusse79 dans le forum Access
    Réponses: 4
    Dernier message: 24/03/2006, 15h59
  3. [Dates] Problème avec la fonction header
    Par d.w.d dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 16h33
  4. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

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