I have a array of given elements:
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");
And then, I had a function, to compare given $date
with array, and return if found 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';
Unfortunately, even the echo ("test")
is not displayed.
@EDIT: Solved out above case. $holidays
scope was an issue. Nonetheless, it's still giving me bad values:
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