2010-10-21 52 views
1

使用if語句我想要檢查一週中的一天是週五的strtotime只跟蹤提前1周

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

的日期如下。一切都很好,當我嘗試選擇日期和時間在22日12:30之前我會收到一條錯誤消息。但是我應該在27日星期五檢查一下,它會在沒有任何併發​​症的情況下通過。

我在這裏有點損失,因爲對我來說,它似乎應該只是工作。我已經看到了關於PHP版本的一些評論,我正在運行PHP版本5.2.9。

任何想提供他們協助的人都會受到歡迎。

回答

2

這是因爲strtotime('Friday')的意思是「本週五」。

你應該使用:

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

我在你的情況猜測輸入的用戶是$datum日期。你if語句將變爲:

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

有關使用date('N', $timestamp)更多信息,請參見:http://php.net/manual/en/function.date.php

+0

現在它可能只是那些日子之一,但我仍然在損失你的建議。所以strtotime('Friday')只會在本週五檢查。但是,我將如何去執行我的代碼中的解決方案,不會檢查選擇的日期是否是他的第五個? – RMB 2010-10-21 08:37:15

+0

5號表示「星期五」(從星期一開始)。我爲你更新了我的答案...... – Mischa 2010-10-21 08:42:34

+0

你是絕對正確的,非常感謝你的非常迅速的迴應和函數參考。時間做更多的閱讀! – RMB 2010-10-21 08:49:32

1

NEW IDEA

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

舊觀念 做的另一種方式是:

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

整篇文章:http://php.about.com/od/finishedphp1/qt/dayoftheweek.htm

哪裏10,31,2008是你的約會。

+0

非常感謝代碼的參考,這是一個非常有見識的閱讀。 – RMB 2010-10-21 08:50:40