我正在尝试使用一个脚本来检查$ 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\"";
}
?>
答案 0 :(得分:3)
只需使用date功能
即可$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上的date功能页面上使用speeddial !!
答案 1 :(得分: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
}