Как проверить, високосный ли год
Короткий ответ
Символ L в формате даты равен 1 для високосного года:
<?php
function isLeapYear(int $year): bool
{
return date('L', mktime(0, 0, 0, 1, 1, $year)) === '1';
}
var_dump(isLeapYear(2024), isLeapYear(2026));Результат:
bool(true)
bool(false)Через 29 февраля
checkdate() проверяет, существует ли такая дата:
<?php
var_dump(checkdate(2, 29, 2024), checkdate(2, 29, 2100));Результат:
bool(true)
bool(false)Само правило
Год високосный, если делится на 4, но не на 100 — либо делится на 400:
<?php
$year = 2000;
var_dump($year % 4 === 0 && ($year % 100 !== 0 || $year % 400 === 0));Результат:
bool(true)