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] Question pour opérations sur des heures


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut [Dates] Question pour opérations sur des heures
    Bonjour à tous ...

    Je vous explique en deux mots ce que j'aimerais faire (et que je n'arrive pas à réaliser) :

    J'ai des heures, encodées dans ma BD (champ "time") qui correspondent à des heures prestées par jour.

    Je parcours ma base de données et, pour un mois donné, j'aimerais additionner tous les champs de mes heures pour en avoir le total (total des heures prestées par mois).
    Malheureusement, il me sort à chaque fois des résultats farfelus ... J'ai l'impression que je n'arrive pas à "gérer" les heures convenablement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            $temp = strtotime($rows['prestation']);
            $h3 = $h3 + $temp;
            echo strftime("%H:%M",$h3);
    Merci d'avance à ceux qui peuvent m'aider

  2. #2
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    salut
    tu veux que ca te retourne un heure ou une date ou...?

    si je comprend bien tu aimerais par ex:
    tu recoit de ta bd 2:00 (2h)
    et tu additionnes 7h
    donc 2:00+7:00 égalerais 9:00 donc 9h?

    Citation Envoyé par Sangdrax1604
    Malheureusement, il me sort à chaque fois des résultats farfelus ... J'ai l'impression que je n'arrive pas à "gérer" les heures convenablement.
    c'est a dire?
    quand tu dépasse 24?
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par ozzmax
    salut
    tu veux que ca te retourne un heure ou une date ou...?

    si je comprend bien tu aimerais par ex:
    tu recoit de ta bd 2:00 (2h)
    et tu additionnes 7h
    donc 2:00+7:00 égalerais 9:00 donc 9h?
    C'est exactement cela ... Et en utilisant le code placé plus haut, il me sort des débilités

  4. #4
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    oki je vois
    alors ce que je te propose c'est de faire une date avec la fonction mktime

    j'avais un truc du genre a faire dans mon app...il fallais que j'ajoute des jours a une date....et que ca augmente sans dépasser le nombre de jour du moi ou encre de l'année si ca changeait d'année
    je te l'aisse un peu de code...a toi de l'ajuster pour tes besoins

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    //j'avais un texte box que j'entrais un nombre de jour a ajouter..ex: 30..45..52
    //Donc je récupère avec validation plus haut pour ne pas qu'il y ait rien 
    //et ensuite le met dans ma variable nbreJours
     
    ...
    $nbreJours = intval($_POST['txtAddJour']);
     
    $dansXjours = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+$nbreJours,  date("Y")));
     
    $arrayRappel = explode("/",$dansXjours);
    alors a toi de voir pour les parametre de la fonction mktime qui fait une date comme tu la veux
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Cela marcherait, en adaptant, pour additionner "uniquement" des heures alors - et donc faire style 8:30 + 9:45 = 18:15 ??

  6. #6
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    bah j'imagine que oui j'ai pas testé mais bon en improvisant un peu...surment un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $temp = strtotime($rows['prestation']); //si ca te retourne seulement les heure..sinon tu décortiques
     
    $taDate = date("H:M",mktime($temp+$autreHeures,0,0,0,0,0));
    Ou attend que j'y pense
    la fonction mktime a besoin d'integer alors a toi de mettre les valeur en nombre entier pour ajouter les heures
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  7. #7
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Salut j'ai fait quelque test
    dsl l'autre post est mauvais et bourré d'erreur

    voici ce qui marche
    il faut que tu mettes le parametre année car sinon windows de prends pas..a cause du timestamps avant 1970..ca change rien dans ton cas l'année

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    $temp = 12;
    $autreHeures = 16;
    $taDate = date("H:i",mktime($temp+$autreHeures,0,0,0,0,date("Y")));
     
    echo $taDate; //donne 04:00
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Effectivement, cela marche comme je le souhaite

    Merci beaucoup

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

Discussions similaires

  1. Opérations sur des heures
    Par Pr3ToriA dans le forum PL/SQL
    Réponses: 3
    Dernier message: 28/11/2011, 14h18
  2. opérations sur des dates
    Par lieto dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 20/04/2007, 10h30
  3. Opération sur des dates
    Par el_pilacho dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/01/2007, 11h06
  4. Opérations sur des dates
    Par loreleï85 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/10/2006, 17h01
  5. Opération sur des heures dans Excel
    Par mirascheat dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2005, 10h34

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