2010-10-21 8 views
1

En utilisant ce qui suit si la déclaration que je suis en train de vérifier si le jour de la semaine est le vendredistrtotime pistes seulement 1 semaine à l'avance

if(($uur < 12) && ($min < 30) && ($datum == date('Y-m-d', strtotime('Friday')))) 
{ 
    $proceed = FALSE; 
    $errorWoensdagVrijdag = "<div id='row_form_dropdown'>Error Message</div>"; 
} 

Les dates sont insérées à l'aide d'un formulaire. Tout est bien vérifié, quand j'essaie de sélectionner la date et l'heure le vendredi 22 avant 12h30, je vais recevoir un message d'erreur. Mais devrais-je le vérifier le vendredi 27, il passera juste sans complications.

Je suis un peu perdu ici car pour moi, il semble que ça devrait fonctionner. J'ai vu quelques remarques concernant la version de PHP, je cours PHP 5.2.9.

Toute personne souhaitant offrir son aide est la bienvenue.

Répondre

2

C'est parce que strtotime('Friday') signifie "vendredi cette semaine".

Vous devez utiliser:

if(date('N', $timestamp) == 5) 
{ 
    // Friday! 
} 
else 
{ 
    // Not Friday :-(
} 

Je suppose que dans votre cas, la date à laquelle l'utilisateur est entré dans $datum. Votre déclaration if deviendrait:

if(($uur < 12) && ($min < 30) && (date('N', strtotime($datum)) == 5)) 
{ 
    $proceed = FALSE; 
    // Etc.. 
} 

Pour plus d'informations sur l'utilisation de date('N', $timestamp), voir: http://php.net/manual/en/function.date.php

+0

Maintenant, cela pourrait être juste un de ces jours mais je suis toujours à la perte de ce que vous suggérez. Donc strtotime ('Vendredi') ne fera que vérifier le vendredi cette semaine. Mais comment est-ce que j'allais mettre en œuvre votre solution dans mon code, ne vérifierais pas si oui ou non la date sélectionnée est la cinquième? – RMB

+0

No 5 signifie «5ème jour de la semaine» (à partir du lundi). J'ai mis à jour ma réponse pour votre cas ... – Mischa

+0

Vous avez absolument raison, merci beaucoup pour votre réponse extrêmement rapide et la référence de la fonction. Il est temps de faire plus de lecture! – RMB

1

NEW IDEA

$timestamp=mktime(0, 0, 0, 10, 21, 2010); 
$today = getdate($timestamp); 
echo $today["weekday"]; 

vieille idée Une autre façon de le faire est:

<?php 
    $h = mktime(0, 0, 0, 10, 31, 2008); 
    $d = date("F dS, Y", $h) ; 
    $w= date("l", $h) ; 
//  Echo "$d is on a $w"; 

if($w=="Friday"){ 
echo "Yes"; 
} 
    ?> 

article entier: http://php.about.com/od/finishedphp1/qt/dayoftheweek.htm

Où 10,31,2008 est votre date.

+0

Merci beaucoup pour la référence du code, c'était une lecture très perspicace. – RMB