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 :

intersection des plages datetime


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut intersection des plages datetime
    Bonjour à tous!
    J'ai un problème de requête MySQL,
    Dites j'ai quatre champs datetime: Début_action, Fin_action, Début_temps et Fin_temps.
    J'aimerais savoir comment faire pour avoir l'intervalle de temps qui fait l'intersection.

    Par exemple si on a
    Début_action = 2010-05-02 10:00:00
    Fin_action = 2010-05-02 18:00:00

    Début_temps = 2010-05-02 06:00:00
    Fin_temps = 2010-05-02 15:00:00

    J'aimerais avoir l'équivalent en secondes de 5 Heures.

    Et si au lieu de deux plages j'en ai 3 comment avoir la somme des intersections en secondes?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est juste une question de logique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $Debut_action = strtotime("2010-05-02 10:00:00");
    $Fin_action = strtotime("2010-05-02 18:00:00");
     
    $Debut_temps = strtotime("2010-05-02 06:00:00");
    $Fin_temps = strtotime("2010-05-02 15:00:00");
     
    $intersection = max(0,min($Fin_action,$Fin_temps)-max($Debut_action,$Debut_temps));
     
    echo $intersection;
    ?>
    J'aimerais avoir l'équivalent en secondes de 5 Heures.
    En quelle classe on apprend a convertir des heures en seconde ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Merci pour ta réponse sabotage,

    En quelle classe on apprend a convertir des heures en seconde ?
    Aucune idée

    En fait je voulais une requête sql pas un code php, car les datetime dont il est question se trouve dans une bd MySQL et il faut faire la somme des intersections sur plusieurs enregistrement. bref passons.

    Je peux néanmoins faire un truc en php même si ça va faire beaucoup de va et vient entre php et sql.
    Mais dans ce cas (php) tu n'a pas prévu le cas ou j'aurais plus d'un interval. Dans le problème que j'essaie de résoudre, j'ai une plage action, mais la plage temps peux être divisée en deux voir plus selon la durée en jour de l'action, c'est à dire que j'ai par exemple:

    Debut_action : 2010-05-01 10:00:00
    Fin_action : 2010-05-02 18:00:00

    Debut_temps1 : 2010-05-01 06:00:00
    Fin_temps1 : 2010-05-01 16:00:00

    Debut_temps2 : 2010-05-02 10:00:00
    Fin_temps2 : 2010-05-02 18:00:00

    La réponse est 6 + 8 = 14 Heures

    En fait action est une action de maintenance (réparation, entretien...) qui a causé l'arrêt d'une machine et les temps sont les temps d'ouverture de cette machine c'est à dire les temps pendant lesquels cette machine est sensée être en marche.
    Ce que je veux donc trouver c'est le temps pendant lequel une machine a été à l'arrêt alors qu'elle était sensé fonctionner.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    si ça va faire beaucoup de va et vient entre php et sql.
    Tu fais une seule requête qui lit les dates et tu calcules l'intersection pour chaque plage lue.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [XL-2010] Copier des plages d'un classeur a un autre
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/03/2018, 20h32
  2. Réponses: 3
    Dernier message: 16/07/2007, 18h23
  3. copier des plages variables de plusieurs feuilles vers une seule
    Par irene15 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 22/06/2007, 13h44
  4. Copier des plages vers Word
    Par ilcocodrillo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/06/2007, 08h44
  5. Ecrire des plages de données dans Excel
    Par Papino dans le forum Delphi
    Réponses: 10
    Dernier message: 02/07/2006, 14h26

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