2017-06-01 107 views
0

我想只打印使用此代码的strtotime功能不能正常工作

$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>"; 

    } 


} 

的与Y-M-d的格式,平日里它打印所有的日子,包括星期六和星期天。我的代码有什么问题

+3

'$ checkday!= '星期六' && $ checkday!=“Sun''希望你能猜出这是为什么。 –

+1

或者使用一个数组:'if(!in_array($ checkday,['Sat','Sun'])){' –

回答

1

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

因此,以下行

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

应更正为

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

你的意思是,而不是:) :) –

+0

@DaveS是怎么回事?据我所知,他正在使用还是取而代之? :) –

+0

感谢@TimeSheep将我的快速反应转化为正确答案。 – RToyo