strtotime只提前1周跟踪

时间:2010-10-21 08:23:33

标签: php strtotime

使用以下if语句我试图检查星期几是否是星期五

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

使用表单插入日期。一切都被检查得很好,当我尝试在12月30日星期五之前选择日期和时间时,我会收到一条错误消息。但是,如果我在27日星期五检查它,它会在没有任何复杂情况下通过。

我在这里有点失落,因为对我来说它似乎应该只是起作用。我已经看到有关PHP版本的一些评论,我正在运行PHP版本5.2.9。

任何想要提供帮助的人都非常欢迎。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

新IDEA

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

OLD IDEA 另一种方法是:

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