特定の日付がphpで許可されているweekdays配列内にあるかどうかを確認する方法の問題で立ち往生しています。例えば、
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]-(Sunday、Monday、Tuesday)のような平日番号(「曜日の数値表現」としてフォーマットされた)でデータベースから返された配列を入力しました。
データベースから返される文字列は「null」になる可能性があるので、私もチェックします。次に、このisDate
関数は、日付が日付であり、問題がないかどうかをチェックします。
たとえば、2010年5月21日の日付が、この配列で許可されている平日であるかどうかを確認したいと思います。私の関数は常にTRUEを返し、どういうわけか平日は常に「木曜日」であり、理由はわかりません...
これをチェックする他の方法はありますか、または上記のコードのエラーは何ですか?どうも