检查日期是周末或假日,仔细检查

时间:2013-12-19 07:02:25

标签: php function loops while-loop

对不起这个问题的措辞,但它正在努力,我需要找到最早的交付日期,

$useStartDate = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));

我有两个功能

首先检查日期是周末还是星期一,并相应地增加

function checkWeekend ($CheckDateDate){
    if (date("w", $CheckDateDate) ==  1) { //monday
        return strtotime('+1 day', $CheckDateDate);
    }
    else if (date("w", $CheckDateDate) ==  0) { //sunday
        return strtotime('+2 day', $CheckDateDate);
    }
    else if (date("w", $CheckDateDate) ==  6) { //saturday
        return strtotime('+3 day', $CheckDateDate);
    }
    else {
        return 0;
    }
} 

第二次检查日期是否在我的假期数据库中

function checkHoliday ($CheckDateDate) {
    $result = mysql_query("SELECT * FROM tblNonDeliveryDates Where NonDeliveryDate = '$CheckDateDate'");
    if (mysql_num_rows($result) > 0) {
        return strtotime('+1 day', $CheckDateDate);
    }
    else {
        return 0;
    }
}

现在我要做的就是检查这两个功能,直到它们都返回0,我在返回时遇到问题并且检查日期不是周末,因为它是假期。这就是我所拥有的,但我知道这是错的。

$CheckDate = $useStartDate;
while ($Checkdate > 0)
{
    $LastChecked = $CheckDate;
    $Checkdate = checkWeekend($CheckDate);
    $Checkdate = checkHoliday($CheckDate);
}
echo $LastChecked;

希望这很清楚。

1 个答案:

答案 0 :(得分:1)

您可以尝试这样

$CheckDate = $useStartDate;
while ($Checkdate > 0)
{
    $weekend = false;
    $holiday = false;

    if( checkWeekend($Checkdate) != 0)
        $weekend = true;
    else if( checkHoliday($Checkdate) != 0)
        $holiday = true;
    else
        $Checkdate = 0;

    if( $weekend )
       $Checkdate = checkWeekend($Checkdate);
    else if( $holiday )
       $Checkdate = checkHoliday($Checkdate); 

     $LastChecked = $Checkdate;
}
echo $LastChecked;