function isLeapYear(int $year): bool {
return ($year % 4 === 0) && (($year % 100 !== 0) || ($year % 400 === 0));
}
function getDayOfYear(int $year, int $month, int $day): int {
// cumulative days at the end of each month (non-leap year)
$days = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
if (isLeapYear($year) && $month > 2) {
return $days[$month - 1] + $day + 1;
}
return $days[$month - 1] + $day;
}
$dayOfYear = getDayOfYear(2023, 5, 15);
echo $dayOfYear;
/*
run:
135
*/