strtotime功能不正常

时间:2017-06-01 21:30:25

标签: php

我正在尝试使用此代码仅打印Y-m-d格式的工作日

$strtdate = "2017-04-10";

$incrmntvar = 0;

while($incrmntvar <= $gettotaldays){
    $checkday = date("D",strtotime($strtdate));

echo "{$checkday} and {$strtdate}". "<br>";
    if($checkday != 'Sat' || $checkday != 'Sun'){

        $incre_date = strtotime("1 day", strtotime($strtdate));
        $strtdate = date("Y-m-d", $incre_date);     
        $incrmntvar ++;


    }

    else{
        $incre_date = strtotime("1 day", strtotime($strtdate));
        $strtdate = date("Y-m-d", $incre_date);
        echo "else " . $strtdate . "<br>";

    }


}

但它会打印所有日子,包括星期六和星期日。我的代码有什么问题

1 个答案:

答案 0 :(得分:1)

在星期六/星期日比较中,您使用的是或(||),而不是和(&&)。如果$checkday'Sat',则$checkday != 'Sun'的检查仍将返回true,因此仍会输出周末天数。

因此,以下一行

if($checkday != 'Sat' || $checkday != 'Sun')

应该更正

if($checkday != 'Sat' && $checkday != 'Sun')