using Carbon, I dont get the problem you are reporting.
function checkActive(int $hour): string
{
if ($hour >= 23 || $hour < 9) {
return 'inactive';
}
return 'active';
}
$hours = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];
foreach ($hours as $hour){
dump(checkActive($hour));
}
outputs
"inactive"
"inactive"
"inactive"
"inactive"
"inactive"
"inactive"
"inactive"
"inactive"
"inactive"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"active"
"inactive"
i set hour using:
$hour = \Carbon\Carbon::now()->format('H');