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

  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" ?

  9. #9
    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
    Tu es obligé de "bidouiller". Bidouille veut dire : passer par le constructeur de Date et lui assigner l'heure/minute que l'on souhaite.
    Ce qui est moche dans ton code c'est que tu récupères une date de la page. Autant faire un new Date().

    Mes deux derniers exemples équivalent au tien. Sous entendu passer par le constructeur de Date pour récupérer un timestamp fiable. Donc à toi de voir ce qui te convient le mieux

  10. #10
    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
    C'est noté.

    Encore merci.

+ 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, 14h05
  2. Réponses: 9
    Dernier message: 06/02/2011, 00h36
  3. Réponses: 0
    Dernier message: 25/10/2010, 13h48
  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, 20h09
  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, 20h29

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