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] Avancer l'horloge


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 44
    Points
    44
    Par défaut [Dates] Avancer l'horloge
    Bonjour,
    Mon problème du jour est:
    je souhaiterai pouvoir rajouter un certain temps à l'horloge, c'est à dire, faire +4h à l'heure actuelle par exemple.
    Voilà ce que j'ai bêtement essayé pour avancé l'heure de 3 minutes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      $min=date("i");
      $minplus=$min+"10";
      $h=date ("H");
      $heure = "$h : $minplus";
      $today = date (" j m Y");
    Evidement ça ne marche pas puisque si il est, par exemple, 14h59 je vais obtenir 15h62.
    Auriez vous une solution simple qui peut etre pourrez m'éviter de créer une fonction lourde prenant en compte les min, h, j, m, a.
    Merci d'avance.

  2. #2
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    beh sinon y a un moyen c'est mettre des conditions, si >60 -> heure +1 etc ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    en théorie moi je calculerai le timestamp du datetime actuel et le timestamp du nombre de minutes, heures ou jours que tu veux ajouter.

    et tu additionne les 2 timestamp et avec la fonction date tu trouvera facillement la date et l'heure que tu souhaite afficher.

    désolé j'ai pas d'exemple sous la main

  4. #4
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Bonjour,

    si tu veux ajouter 4h a ton heure, tu converti 4h en secondes (14400) puis tu rajoute cela a la fonction time() qui va te retourner un timestamp unix que tu pourra convertir avec la fonction date(). et voila, cela parait complique comme cela, mais en fait c'est simple. A toi de jouer
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  5. #5
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 44
    Points
    44
    Par défaut
    ok un grand merci.
    Je voudrais pas abuser mais si vous aviez un petit exemple.
    Juste pour savoir, en fait on part d'une date référence, on compte à partir de cette date en secondes et la fonction time() permet de retranscrire le nombre de secondes en h:min, j, m, a?
    En tout cas merci.
    A+

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Salut tu peux utiliser la fonction mktime()...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php 
    $date_en_seconde = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));
    ?>
    elle te donnera la date du jour en secondes pour cet exemple.

    Ensuite tu convertis tes heures en seconde.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php 
    $new_date = $date_en_seconde+14400;
    ?>
    Et tu affiches la nouvelle date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo date("H:i",$new_date); ?>
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  7. #7
    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
    http://fr.php.net/manual/fr/function.time.php

    Le mieux c'est d'utiliser la fonction mktime() pour manipuler les timestamp

  8. #8
    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 syl2095
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_en_seconde = mktime(0,0,0,date("m"),date("d"),date("Y"))
    elle te donnera la date du jour en secondes pour cet exemple.
    Le problème était d'avancer l'heure du jour.

    Avec la fonction time(), tu recupères le timestamp actuel.
    Puis avec mktime(), tu manipules la date que tu veux obtenir
    http://fr.php.net/manual/fr/function.mktime.php

    <?php
    $time_day
    = time();
    $time_plus_3min = date("H:i", mktime(date("H",$time_day), date("i",$time_day)+3, date("s",$time_day), date("m",$time_day), date("d",$time_day), date("Y",$time_day)));
    echo
    'Heure actuelle : '.date("H:i",$time_day).'<br />';
    echo
    'Heure actuelle + 3 min : '.$time_plus_3min;
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    ouais enfin c'était un exemple comme un autre. L'important est qu'il ait des pistes pour avancer et non pas la solution directe.

    Mince, c'est vrai j'ai oublié les secondes minutes heures dans la conversion ! Je me regrette !
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  10. #10
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 44
    Points
    44
    Par défaut
    Je suis ravi. J'ai compris comment ça fonctionne.
    MERCI BEAUCOUP.

  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
    Penses au tab [Resolu] (Outils de la discussion)

  12. #12
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    php met a disposition des methodes de haut niveau... autant les utiliser ;o)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo strtotime("+4 hours");
    ?>
    et le pire c'est que ca marche ;o)

    http://fr2.php.net/fr/strtotime

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

Discussions similaires

  1. Fonction pour avancer la date d'un jour
    Par Invité dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 10/05/2007, 12h05
  2. [Dates] horloge universelle sans php 5 ?
    Par mnem0 dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2007, 12h02
  3. Réponses: 4
    Dernier message: 25/04/2006, 19h41
  4. Horloge interne pb de Time and Date
    Par Max Payne dans le forum Composants
    Réponses: 6
    Dernier message: 30/07/2005, 21h30

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