PHP检查特定日

时间:2011-08-09 07:14:30

标签: php

如果当天是星期五,我需要将运送日更改为下周二。这是我的代码。

$tomorrow = mktime(0,0,0,date("m"),date("d")+$tt+1,date("Y"));
$duedate = date("d - M D", $tomorrow);
$str = substr($duedate, 9, 11);
$fri='Fri';
$sat='Sat';
if(strcmp($str,$fri)==0)
{
 $tomorrow = mktime(0,0,0,date("m"),date("d")+4,date("Y"));
 $duedate = date("d - M D", $tomorrow);
}

但是我觉得if循环没有正确地检查星期五。所以在$tommorrow中添加4也没有用。任何指针?

4 个答案:

答案 0 :(得分:3)

这应该足够了:

if (date('N') == 5) {
    //set duedate to next Tuesday
    $DateTime = new DateTime('now');
    $DateTime->add(new DateInterval('P4D')); //add 4 days
    $dueDate  = $DateTime->format('your format');
}

N给出了ISO标准化数字,周五为5。日期不需要第二个参数,在这种情况下它需要当前的时间戳。

有关DateTime的详细信息,请参阅http://www.php.net/manual/en/book.datetime.php

答案 1 :(得分:2)

$tomorrow = mktime(0,0,0,date("m"),date("d")+$tt+1,date("Y"));
$duedate = date("d - M D", $tomorrow);
if (date("N", $tomorrow) == 5) {
    $tomorrow = mktime(0,0,0,date("m"),date("d")+4,date("Y"));
    $duedate = date("d - M D", $tomorrow);
}

答案 2 :(得分:1)

首先尝试使用日期函数提取日期,例如:

date('D'); // Mon through Sun

date('N'); // 1 (for Monday) through 7 (for Sunday)

其次使用strtotime函数将日期添加到日期,例如:

strtotime("+4 day",$date); // Add 4 days to date

答案 3 :(得分:1)

$nextTuesday = strtotime('next tuesday');