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 :

Condition pour des dates avec strcmp


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut Condition pour des dates avec strcmp
    Bonjour,
    je souhaite tester l'heure et les jours de la semaine dans le but d'afficher un message différent. Je n'ai pas de problème pour l'heure, en revanche je n'arrive pas à régler mon problème avec strcmp qui devrait me renvoyer une valeur différente de 0 lorsque l'on est dimanche ou samedi selon la documentation officielle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    date_default_timezone_set('Europe/Paris');
    $heure = date("H");
    $jour = date("D");
    if (($heure >= 07 AND $heure < 12) OR ($heure >= 13 AND $heure < 18) AND (strcmp($jour, "Sat") !== 0) AND (strcmp($jour, "Sun") !== 0)): ?>
    		<b>Condition validée</b>
    <?php else: ?>
    		<b>Condition non validée</b>
    <?php endif; ?>
    Merci de votre aide.
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Retourne 0 si les deux chaînes sont égales.
    Mais pourquoi utiliser des formats compliqués à manipuler ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $heure = date("h");
    $jour = date("N");
    if (($heure >= 7 AND $heure < 12) OR ($heure >= 13 AND $heure < 18) AND $jour < 6)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Merci pour ta réponse, il y a toujours un petit soucis, lorsque je fais mes tests en mettant un jour du week-end, par exemple samedi à 11H00, la condition est validée alors qu'elle ne devrait pas puisque on a mis strictement inférieur à 6...
    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
    <?php
    	date_default_timezone_set('Europe/Paris');
    	$heure = date("H");
    	$jour = date("N");
    	$heure = 11;
    	$jour = 6;
     
    	if (($heure >= 07 AND $heure < 12) OR ($heure >= 13 AND $heure < 18) AND $jour < 6): ?>
    		<div id=Ouvert>
    			<b>Nous sommes actuellement ouverts.</b>
    		</div>
    	<?php else: ?>
    		<div id=Ferme>
    			<b>Nous sommes actuellement fermés.</b>
    		</div>
    <?php endif; ?>
    Merci.
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Faire attention aux parenthèses ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((($heure >= 07 AND $heure < 12) OR ($heure >= 13 AND $heure < 18)) AND $jour < 6)
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Merci, j'avais regardé les parenthèses mais je ne les avaient pas mises au bon endroit.
    A+.
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/12/2012, 15h22
  2. EXCEL SOMME.SI avec condition sur des dates
    Par cfhal dans le forum Excel
    Réponses: 7
    Dernier message: 15/10/2007, 08h21
  3. [MySQL] le format idéal pour stocker des dates avec l'heure
    Par Philoulheinz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/02/2007, 21h53
  4. Comment comparer des dates avec la procédure assertEquals de JUNIT ?
    Par andrianiaina dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 25/01/2007, 18h31
  5. Réponses: 9
    Dernier message: 02/05/2006, 21h17

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