, , , year/month/day ( ... :). , .
, ... () : checkdate(). >= 1, .
, , , year <= 0.
side-trek , BIG...
, 45 . , . , ; , 4 1582 , , , 15 1582 ( ).
, 5 1582 14 1582 , ; .
, 45 . .. 46 . .. .
, , , , " ". - , .
, , , , , BC 1/1 . , /, "BC", BC AD - .
, , - . , 8 AD.
, 45 () . is-year-leap, , julian/gregorian:
define('YEAR_JULIAN_CALENDAR_INTRODUCED', -45);
define('YEAR_JULIAN_CALENDAR_LEAP_IMPLEMENTED_CORRECTLY', 8);
define('YEAR_GREGORIAN_CALENDAR_INTRODUCED', 1582);
function is_leap_year($year) {
if($year < YEAR_JULIAN_CALENDAR_INTRODUCED) {
return false;
}
if($year < YEAR_JULIAN_CALENDAR_LEAP_IMPLEMENTED_CORRECTLY) {
return $year <= -9 && $year % 3 == 0;
}
if($year < YEAR_GREGORIAN_CALENDAR_INTRODUCED) {
return $year % 4 == 0;
}
return $year % 4 == 0 && ($year % 100 != 0 || $year % 400 == 0);
}
, , , . / .
( , ). :
?
, " ", , : a) , b) , 3- , , .
, , .:)