检查变量是星期六还是星期日


Check if a variable is Saturday or Sunday

我正在尝试让一个脚本工作,检查$acdate"是星期六还是星期日,如果是,它应该用一个新类更改当前类。但是由于某种原因,我没有让它工作,我已经尝试了不同的方法,寻找可能的答案来让它工作,但最终我不得不尝试你们,看看你是否有可能的问题解决方案行 caseclosure 返回一个 0-9 之间的值,如果您想知道这是我的代码

<?php
$acdate = 0;
while ($row = mysql_fetch_assoc($tccrequest))
{
    $acdate = date('d-m-Y',time() + 86400 * $row['autoclosure']);
    if($row['ac update']!=1){
        if ($acdate <= date('d-m-Y')){
            $warning= "warning2";
        }
        else if ($acdate == date('d-m-Y')+1){
            $warning= "nextday";
        }
        else if ($acdate == strtotime('this Saturday')){
            $warning= "warning2";
        }
        else if ($acdate == strtotime('this Sunday')){
            $warning= "warning2";
        }
        else{
            $warning="";
            $disable = "disabled='"disabled'"";
        }
    }else{
            $warning="updated";
            //$disable = "disabled='"disabled'"";           
    }
?>

只需使用日期函数

$Datetime_acdate  = strtotime(acdate);
//will return string 'Sat' or 'Sun' or 'Mon' etc 
$DayofWeek = date('D', $Datetime_acdate );
if ($DayofWeek == 'Sat' or $DayofWeek == 'Sun'){
 //do something.
}

您应该在快速拨号 php.net 上拥有日期功能页面!!

strtotime('this Saturday')将返回与本周星期日对应的 Unix 时间戳。但是您的$acdate变量是一个日期字符串,因此使用 strtotime() 进行比较将永远不起作用。在进行比较之前,您必须将日期转换为时间戳:

改变:

$acdate = date('d-m-Y',time() + 86400 * $row['autoclosure']);

自:

$acdate = time() + 86400 * $row['autoclosure'];

但是,如果您尝试检查日期是否是星期日(无论它落在哪一周),您可以简单地使用 l 格式(小写 L)':

$acdateTS = strtotime($acdate);
if(date('l', $acdateTS) == 'Sunday') {
    // do something
}