ตัวอย่างโค้ด
<?php
function year_check($my_year) {
if ($my_year % 400 == 0) {
echo "It is a leap year";
} elseif ($my_year % 100 == 0) {
echo "It is not a leap year";
} elseif ($my_year % 4 == 0) {
echo "It is a leap year";
} else {
echo "It is not a leap year";
}
}
$my_year = 1900;
year_check($my_year);
?>
ผลลัพธ์
It is not a leap year
กฎ Leap Year (Gregorian Calendar)
- หาร 400 ลงตัว → Leap Year
- หาร 100 ลงตัว → NOT Leap Year (Exception)
- หาร 4 ลงตัว → Leap Year
- อื่นๆ → NOT Leap Year
ตารางทดสอบ
| Year | Div 400 | Div 100 | Div 4 | Leap? |
| 1900 | No | Yes | Yes | No (Century not div 400) |
| 2000 | Yes | Yes | Yes | Yes |
| 2024 | No | No | Yes | Yes |
| 2023 | No | No | No | No |
| 2100 | No | Yes | Yes | No |
Built-in Function
<?php
function is_leap_year($year) {
return (bool)date('L', strtotime("$year-01-01"));
// หรือ
return checkdate(2, 29, $year); // Feb 29 exists?
}
var_dump(is_leap_year(1900)); // false
var_dump(is_leap_year(2000)); // true
var_dump(is_leap_year(2024)); // true
?>
DateTime Class (PHP 5.2+)
<?php
$date = new DateTime("2024-02-29");
echo $date->format("Y-m-d"); // Valid
try {
$date = new DateTime("1900-02-29");
} catch (Exception $e) {
echo "1900-02-29 Invalid";
}
?>