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

PHP & Base de données Discussion :

Calcule de temps [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Par défaut Calcule de temps
    Bonjour à tous en ce jour férié

    J'ai un petit soucis ...

    Donc, j'ai ces champs dans ma BDD :
    • heure_depart : 17

    • minutes_depart : 30

    • heure_arrivee : 18

    • minutes_arrivee : 30


    Comme exemple, le départ a été fait à 17h30 et l'arrivée à 18h30.
    Je voudrais savoir comment calculer le temps qu'il s'est écoulé entre les 2.

    De plus, il faudrait que cela fonctionne si l'arrivée se fait en J+1.

    Merci de votre aide à tous
    Kevin,

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    A mon avis le mieu serait de le faire avec des timestamp :

    tu calcul le timestamp de la date de debut et de la date de fin (avec mktime())

    tu fais la différence des 2 ce qui te donnera le nombre de secondes qui se sont écoulé entre les 2 dates.

    Et à partir de la tu les convertis comme tu les veux.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Par défaut
    bonjour!!c'est simple tu fais la conversion de tous les temps en minutes et tu fais le calcul de différence!!!!

  4. #4
    Membre éclairé Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Par défaut
    Merci de votre aide, donc en bidouillant et en cherchant dans les FAQ, j'ai trouvé ce code :
    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
    $heure1 = "".$data['heure'].":".$data['minutes'].":00";
    $heure2 = "".$data['heure_arr'].":".$data['minutes_arr'].":00";
     
    list($h1, $m1, $sec1) = explode(':', $heure1);
    list($h2, $m2, $sec2) = explode(':', $heure2);
     
    $timestamp1 = mktime ($h1, $m1, $sec1, 7, 9, 2006);
    $timestamp2 = mktime ($h2, $m2, $sec2, 7, 9, 2006);
     
    $diff_heure = floor(abs($timestamp2 - $timestamp1)/60);
    echo $diff_heure."min";  
     
    $timestamp = abs($timestamp2 - $timestamp1);
    $diff_heure = floor($timestamp / 3600); 
    $timestamp = $timestamp - ($diff_heure * 3600);
    $diff_min = $timestamp / 60; 
    echo $diff_heure . 'h' . $diff_min . 'min';
    Il marche très bien quand c'est une même journée, or si le départ est à 23h00 et l'arrivée, le landemain à 01h00 ... il ne fonctionne plus. Une astuce ?

    Merci

  5. #5
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    il faut modiffier les dates dans les mktime (les 3 derniers paramètres) et mettre les dates qui correspondent aux 2 jours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $timestamp1 = mktime ($h1, $m1, $sec1, 7, 9, 2006);
    $timestamp2 = mktime ($h2, $m2, $sec2, 7, 9, 2006);

  6. #6
    Membre éclairé Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Par défaut
    Salut,

    ca y est, après pas mal de temps, le code tourne bien, merci beaucoup

    Kev'

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

Discussions similaires

  1. comment calculer le temps d'execution
    Par passion_info dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/06/2005, 09h13
  2. Calculer le temps passé
    Par Joeleclems dans le forum MFC
    Réponses: 4
    Dernier message: 29/04/2005, 09h40
  3. calculer le Temp écoulé
    Par ada_b dans le forum SQL
    Réponses: 1
    Dernier message: 30/11/2004, 09h44
  4. [MFC] : CTime ? Calcul de temps d'éxécution
    Par jonzuzu dans le forum MFC
    Réponses: 10
    Dernier message: 25/05/2004, 14h22
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

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