我有一系列给定的元素:
date_default_timezone_set("UTC");
$DateNow = date("d/m/Y H:i", time());
$tommorowUnix = strtotime("+1 day");
$tommorowAfterUnix = strtotime("+2 day");
$holidays = array("30 October 2021",
"31 October 2021",
"01 November 2021",
"02 November 2021",
"11 November 2021",
"12 October 2021",
"25 December 2021",
"26 December 2021",
"27 December 2021",
"1 January 2022",
"2 January 2022");然后,我有了一个函数,将给定的$date与数组进行比较,如果找到true,则返回:
foreach($holidays as &$value)
{
$value = strtotime($value);
}
function isNextDayWeekend($date)
{
$weekDay = date('w', $date);
echo($weekDay);
if($weekDay == 0 || $weekDay == 6)
return true;
else
return false;
}
function isNextDayHoliday($date)
{
$returnVal = false;
foreach ($holidays as $holidayDay)
{
echo ("test");
if($date == $holidayDay) { $returnVal = true; }
}
return $returnVal;
}
$check1 = isNextDayHoliday(strtotime("12 October 2021"));
echo $check1 ? 'true' : 'false';不幸的是,即使是echo ("test")也没有显示。
@编辑:解决上述情况。$holidays范围是一个问题。尽管如此,它仍然给了我坏的价值观:
function isNextDayHoliday($date,$holidays)
{
$returnVal = false;
foreach ($holidays as $holidayDay)
{
if($date == $holidayDay) {$returnval = true;}
echo "Checking ".$date." vs. ".$holidayDay." = ";
echo $returnVal ? "true" : "false"."<br/>";
}
return $returnVal;
}
$check1 = isNextDayHoliday(strtotime("12 October 2021"),$holidays);
echo $check1 ? "true" : "false";Checking 1633996800 vs. 1635552000 = false
Checking 1633996800 vs. 1635638400 = false
Checking 1633996800 vs. 1635724800 = false
Checking 1633996800 vs. 1635811200 = false
Checking 1633996800 vs. 1636588800 = false
**Checking 1633996800 vs. 1633996800 = false**
Checking 1633996800 vs. 1640390400 = false
Checking 1633996800 vs. 1640476800 = false
Checking 1633996800 vs. 1640563200 = false
Checking 1633996800 vs. 1640995200 = false
Checking 1633996800 vs. 1641081600 = false
false发布于 2021-07-05 10:31:14
function isNextDayHoliday($date)
{
$returnVal = false;
foreach ($holidays as $holidayDay)
{
echo ("test");
if($date == $holidayDay) { $returnVal = true; }
}
return $returnVal;
}您需要将$holidays传递给这个函数,这个函数不知道holidays是什么。
您可以全局声明它,然后可以使用它。
你要把它优化一下。if($date == $holidayDay) return true;,以便在找到处理后立即停止处理。
https://stackoverflow.com/questions/68254529
复制相似问题