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

JavaScript Discussion :

Heure de fin supérieure ou égale à l'heure de début


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut Heure de fin supérieure ou égale à l'heure de début
    Bonjour,

    Je suis confronté au même problème évoqué ici => http://www.developpez.net/forums/d51...e-deux-heures/

    J'ai par exemple :
    HeureDeb => 09:00
    HeureFin => 11:30

    La fonction me retourne bien une valeur, mais je ne vois pas comment tester que l'heure de fin est bien supérieure ou égale à l'heure de début.

    Quelqu'un peut m'aider ?

    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391

  3. #3
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    "11:30" > "09:00" ne suffit pas ?

  4. #4
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Ca me renvoie NaN.

    J'avais bien lu cette FAQ, mais dans mon formulaire, j'ai deux listes déroulantes qui contiennent des valeurs au format horaire :

    HeureDeb => 09:00
    HeureFin => 11:30
    J'ai également une zone date (txtDate => 26/08/2013)

    J'ai commencé à chercher comment extraire les valeurs pour faire ça :
    Nom_de_l_objet = new Date(année, mois, jour, heures, minutes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var thedate = new Date(document.frmSaisie.txtDate.value);
    alert(thedate.getDay());
    alert(thedate.getMonth());
    alert(thedate.getFullYear());
    Résultat :

    alert N° 1 => 0
    alert N° 2 => 1
    alert N° 3 => 2015
    Qu'est ce que j'ai (pas ou mal) fait ?

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par pc75 Voir le message
    J'ai également une zone date (txtDate => 26/08/2013)

    J'ai commencé à chercher comment extraire les valeurs pour faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Nom_de_l_objet = new Date(année, mois, jour, heures, minutes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var thedate = new Date(document.frmSaisie.txtDate.value);
    Qu'est ce que j'ai (pas ou mal) fait ?
    Ne vois-tu rien là qui te choque ?

    A+JYT

  6. #6
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    Je pense avoir résolu mon problème.

    J'aimerais savoir si ça fait "bidouille" avant de mettre résolu.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    	var ddd = document.frmSaisie.txtDate.value;
    	thedate = ddd.split("/");
    	jour = thedate[0];
    	mois = thedate[1];
    	annee = thedate[2];
     
    	var deb = document.frmSaisie.txtHdeb.value;
    	var hd = deb.split(":");
    	var heuredeb = hd[0];
    	var minutedeb = hd[1];
     
    	var fin = document.frmSaisie.txtHfin.value;
    	var hf = fin.split(":");
    	var heurefin = hf[0];
    	var minutefin = hf[1];
     
    	// Mise en place de la première heure
    	var d1 = new Date(annee, mois, jour, heuredeb, minutedeb);
     
    	// Mise en place de la seconde heure
    	var d2 = new Date(annee, mois, jour, heurefin, minutefin);
     
    	if (d1 < d2)
    		{
    	    return(true);
    		}
    	else
    		{
    	    return(false);
    		}
    Merci

  7. #7
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Citation Envoyé par pc75 Voir le message
    Ca me renvoie NaN.
    ça me renvoie true

    Si l'heure est au format 'XX:XX' (exemple s'il est 9h : 09:00. et non 9:00).
    Si les input ont pour id 'txtHdeb' et 'txtHfin'Alors, ceci suffit, je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return document.getElementById('txtHdeb').value < document.getElementById('txtHfin').value;
    Si la comparaison de chaine ne te convient pas, tu peux aussi convertir heure/minute en secondes et constater qui est le plus petit ... (bien sûr cette technique implique que les heures soient sur 24 et non au format AM/PM)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var deb, fin, tDeb, tFin;
    deb = document.getElementById('txtHdeb').value.split(':');
    fin = document.getElementById('txtHfin').value.split(':');
    tDeb = deb[0] * 3600 + deb[1] * 60;
    tFin = fin[0] * 3600 + fin[1] * 60;
     
    return tDeb < tFin;
    Enfin, pour se blinder le plus, tu passes par l'objet date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var deb, fin, tDeb, tFin;
    deb = document.getElementById('txtHdeb').value.split(':');
    fin = document.getElementById('txtHfin').value.split(':');
    tDeb = new Date().setHours(deb[0], deb[1]);
    tFin = new Date().setHours(fin[0], fin[1]);
     
    return tDeb < tFin;
    En continuant d'exploiter l'objet Date, ça me rappelle une méthode fun que j'avais vu quelque part qui parse en date .... (qui semble être la plus robuste à mon avis)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var tDeb, tFin;
    tDeb = Date.parse("Thu, 01 Jan 1970 " +document.getElementById('txtHdeb').value + " GMT");
    tFin = Date.parse("Thu, 01 Jan 1970 " + document.getElementById('txtHfin').value + " GMT");
     
    return tDeb < tFin;

  8. #8
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Merci de ces explications.

    Personne pour me dire si le code que j'ai mis en place ressemble à de la "bidouille" ?

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

Discussions similaires

  1. [2012] Récupérer l'heure de fin de sauvegarde
    Par nutopia dans le forum Administration
    Réponses: 4
    Dernier message: 10/04/2015, 13h05
  2. Réponses: 9
    Dernier message: 05/02/2011, 23h36
  3. Réponses: 0
    Dernier message: 25/10/2010, 12h48
  4. Calculer les heures en jours et les jours en heures dans 2 combobox
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2008, 19h09
  5. [9iR2] l'heure de fin d'exécution d’une commande ?
    Par Mehdilis dans le forum Oracle
    Réponses: 2
    Dernier message: 02/04/2007, 19h29

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