我遇到了一个问题,如何检查特定日期是否在 php 中允许的工作日数组内。例如,
function dateIsAllowedWeekday($_date,$_allowed)
{
if ((isDate($_date)) && (($_allowed!="null") && ($_allowed!=null))){
$allowed_weekdays=json_decode($_allowed);
$weekdays=array();
foreach($allowed_weekdays as $wd){
$weekday=date("l",date("w",strtotime($wd)));
array_push($weekdays,$weekday);
}
if(in_array(date("l",strtotime($_date)),$weekdays)){return TRUE;}
else {return FALSE;}
}
else {return FALSE;}
}
/////////////////////////////
$date="21.05.2010"; //actually is Friday (5)
$wd="[0,1,2]"; //Sunday,Monday,Tuesday
if(dateIsAllowedWeekday($date,$wd)){echo "$date is within $wd weekday values!";}
else{echo "$date isn't within $wd weekday values!"}
我输入了格式为“dmY”的日期和一个从数据库返回的数组,其中包含工作日数字(格式为“星期几的数字表示”),如 [0,1,2] -(星期日、星期一、星期二)。
从数据库返回的字符串可以是“null”,所以我也检查一下。然后,该isDate
函数检查 date 是否为日期,是否正常。
我想检查我的日期,例如 21.05.2010 是否是此数组中允许的工作日。我的函数总是返回 TRUE 并且不知何故工作日总是“星期四”,我不知道为什么......
有没有其他方法可以检查这一点,或者我在上面的代码中的错误是什么?谢谢