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] Comparer une variable avec 2 éléments


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut [Dates] Comparer une variable avec 2 éléments
    bonjour,
    j'ai un petit soucis
    j'aimerais comparer une variable ($heure) à 2 horaires (12:00:00 et 14:00:00)

    $heure = date("G:i:s");

    j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ("12:00:00 " < ".$heure." < "14:00:00 ")
    en clair, si l'heure systeme se trouve entre 12h et 14h

    mais ça ne marche pas
    voici l'erreur :
    Parse error: parse error, unexpected '<' in


    de plus, j'aimerais savoir comment faire pour afficher l'heure non statique c'est à dire que l'on voit les secondes et les minutes defiler.


    merci beaucoup..

  2. #2
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Yop, essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ("12" < ".$heure." < "14")

  3. #3
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    arf ça en marche pas plus..

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    pour faire une double comparaison ça se présente comme ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((12 < $heure) && ($heure < 14)) { ... }
    mais après à toi de mettre ce qu'il faut dans la variable heure parce que tu ne peux pas comparer la chaine de caractères "12:00:00" il faut d'abord la transformer en nombre

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Utilise la fonction strcmp pour comparer tes chaînes, surtout reporte toi aux indications ici : strcmp

    Mais faire comme mathieu le dit serait certainement la meilleur solution.
    Ou tu peux utiliser les timestamps aussi

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    voila, j'ai testé, ca roule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    $heure = date ("G:i:s");
     
    print ("$heure"."<br>");
    if ($heure>"23" AND $heure<"24") {
    	echo 'comprise entre les 2 valeurs';
    	}
    else { 
    	echo 'pas compris entre les 2 valeurs';
    	}
     
    ?>

  7. #7
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ok c'est bon...
    j'étais deja en train de tester ce que tu m'as dit mathieu et j'ai donné comme valeur $heure2 = date("G");, pour obtenir juste l'heure, ce qui donne au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (('12' <= $heure2 ) &&  ($heure2  <= '14'))
    merci beaucoup !!

  8. #8
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    Citation Envoyé par orbitalxp
    voila, j'ai testé, ca roule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    $heure = date ("G:i:s");
     
    print ("$heure"."<br>");
    if ($heure>"23" AND $heure<"24") {
    	echo 'comprise entre les 2 valeurs';
    	}
    else { 
    	echo 'pas compris entre les 2 valeurs';
    	}
     
    ?>
    merci

  9. #9
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    j'aimerais pas abuser mais je voudrais juste savoir comment je pourrais calculer, à partir de 2 heures (par exemple (heure d'arrivée)9h10 et (heure de depart) 17h15), le nombre d'heure au total. car j'aimerais pouvoir calculer le nombre total d'heure de chaque personne presente de façon quotidienne.

    merci encore...

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778

  11. #11
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    merci c'est gentil
    mais est ce que tu peux m'expliquer cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ($h1, $m1, $sec1, 7, 9, 2006);
    en faite se sont le 7, 9 et 2006, je comprends pas d'où ils sortent..

    et sinon pour le code en lui meme j'ai recopié mais ya une erreur, voilà ce que j'ai :
    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
     
    $heure1 = "09:00:00";
    $heure2 = "17:10:00";
    //Extractions des différents paramètres
    list($h1, $m1, $sec1) = explode(':', $heure1);
    list($h2, $m2, $sec2) = explode(':', $heure2);
    //Calcul des timestamps
    $timestamp1 = mktime ($h1, $m1, $sec1, 7, 9, 2006);
    $timestamp2 = mktime ($h2, $m2, $sec2, 7, 9, 2006);
     
     
    $timestamp = abs($timestamp2 - $timestamp1);
    $diff_heure = floor(timestamp/3600); //Calcul des heures écoulées/restantes
    $timestamp = $timestamp - ($diff_heure*3600);
    $diff_min = $timestamp/60; //Calcul des minutes écoulées/restantes
    echo $diff_heure."h".$diff_min."min"; // Affiche 0h50min
    et ça me donne comme erreur :
    Notice: Use of undefined constant timestamp - assumed 'timestamp' in

    à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $diff_heure = floor(timestamp/3600); //Calcul des heures écoulées/restantes

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mktime ($h1, $m1, $sec1, 7, 9, 2006);
    TU dois te reporter aux éléments de la fonction mktime elle même. Mais c'est sur que c'est une date

    Pour l'autre erreur il manque un $ devant timestamp car c'est une variable

  13. #13
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    mais pourquoi ya marqué pour 7, 9, 2006, "$h1, $m1, $sec1"

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je reprends c'est une date. Et cette date correspond au jour où j'ai rédigé cette Q/R. C'est tout

    Pour toi ça consistera à mettre tes valeurs ou variables $heure et etc...

  15. #15
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Prends tes variables qui contiennent tes heures.
    Découpe-les avec la fonction split (cf php.net).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($heure, $minute, $seconde) = split(":", $heure);
    Crée un timestamp correspondant à cette heure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $timestamp = mktime($heure, $minute, $seconde, $mois, $jour, $annee);
    Crée ensuite un timestamp pour chaque heure avec laquelle tu veux comparer.
    Compare directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($time_stamp_a < $time_stamp_mon_heure) ...
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

Discussions similaires

  1. comparer une datetime avec date()
    Par emulamateur dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/11/2009, 07h54
  2. comparer une cellule avec une variable
    Par nessing dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/08/2007, 22h54
  3. Réponses: 9
    Dernier message: 14/06/2007, 16h43
  4. Réponses: 6
    Dernier message: 02/06/2007, 01h07
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21

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