1

我试图让一个脚本来检查 $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\"";           
    }
?>
4

2 回答 2

3

只需使用日期功能

$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 上的日期功能页面!!

于 2013-11-14T10:39:12.970 回答
0

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
}
于 2013-11-14T10:37:23.707 回答