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] recupéré H:i de timestamp [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Par défaut [Dates] recupéré H:i de timestamp
    Salut ;
    voila j'essai d'affiché le nombre d'heure et de minute restant entre deux temps
    mais voila le resultat de ("H:i",$temps_restant); me donne une huere de plus
    a midi le resultat est 19 h 00 au lieu des 18h00 !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    $instant_T=mktime();
     
    $today_a18h=1151769600; // aujourd'hui a 18h
     
    $temps_restant=$today_a18h-$instant_T; 
     
    echo date("H:i",$temps_restant);
     
    ?>

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 513
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 513
    Par défaut
    Je ne comprend pas trop le calcule que tu fais (surtout que je suis dasn le cake là ) fait un test sur une autre référence. Fait un test pour qu'il puisse afficher 24h et tu vas peut être trouvé pourquoi il y a un décalage.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Par défaut
    bon je le fait autrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
     
    $today_a18h=1151769600; // aujourd'hui a 18h
    $demain_a18h=1151856000;    // demain a 18h
     
    $temps_restant=$today_a18h-$demain_a18h; 
     
    echo " ecris l'ecart en Heures et minutes";
     
    echo date("H:i",$temps_restant);
    ?>
    la dans cette exemple le resultat pour moi devrais etre de 24h00
    mais il est de 01h00 !!!
    apparement les heures au dela de 23h59m59s ne sont plus affiché !!?
    mais pk ce decalage d'une heure , y a t-il une histoire de GMT ?

  4. #4
    Membre confirmé Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Par défaut
    Citation Envoyé par nebil
    bon je le fait autrement
    la dans cette exemple le resultat pour moi devrais etre de 24h00
    mais il est de 01h00 !!!
    Il faut savoir que la fonction date() ne t'affichera jamais 24.
    Le but de la fonction date est d'afficher une date à partir d'un timestamp.
    Une différence d'heures n'est pas forcément une date, 32h24 n'est pas un résultat que tu pourras obtenir avec date().

    Tu peux essayer ça mais je ne garantis rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $minute_restante = floor(($today_a18h-$demain_a18h)/60);
    $heure = floor($minute_restante/60);
    $minute = $minute_restant%60;
    Par contre pour la différence d'une heure, je ne sais pas.

  5. #5
    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
    Salut moi quand j'ai dû gerer les dates j'avais fait un truc dans le style :

    //les dates en timestamp
    $h1=strtotime($my_strh1);
    $h2=strtotime($my_strh2);

    //Si la deuxieme est plus tard que la premiere
    if($h2 > $h1)
    {h3=($h2-$h1);}

    //Si c'est la premiere qui est plus tard que la deuxieme
    if($h2 > $h1)
    {
    $h3 = 86400-($h1-$h2)-3600;
    //86400 correspond donc a 24h le jour d'apres quoi et 3600 ce foutu decalage
    }
    //J'avais egalement fait un controle du format lors de la saisie afin d'eviter des heures aberrantes
    @$date1 = getdate($h1)
    //note : le @ c'est pour forcer le passage car je gere l'erreur apres mais maitenenant avec PHP5 tu peut faire des try-catch
    if($date1 == -1){ //erreur
    echo 'heure incorrecte';
    }else{
    echo 'heureOK';
    }
    //idem pour h2
    //puis reconversion en heure formatée (ICI H:M)
    echo strftime("%H:%M",$h3);
    vola j'espere que ca pourra t'aider

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

Discussions similaires

  1. [SQL] Transformer une date d'un calendrier en timestamp pour trie
    Par Seta-san dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/10/2007, 20h37
  2. [Dates] Numéro de semaine vers timestamp
    Par gloubi dans le forum Langage
    Réponses: 4
    Dernier message: 02/01/2007, 22h14
  3. [Derby] Requete date courante sur un champ Timestamp
    Par spekal dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/09/2006, 10h54
  4. Réponses: 1
    Dernier message: 01/06/2006, 23h12
  5. Réponses: 14
    Dernier message: 29/06/2005, 10h22

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