2011-04-15 77 views

回答

18

您可以使用PHP的date()功能做到這一點...

// L will return 1 or 0 for leap years 
echo date('L'); 

// use your own timestamp 
echo date('L', strtotime('last year')); 

// for specific year 
$year = 1999; 
$leap = date('L', mktime(0, 0, 0, 1, 1, $year)); 
echo $year . ' ' . ($leap ? 'is' : 'is not') . ' a leap year.'; 

讓我知道如果這樣做這一招你,乾杯!

UPDATE:,將實施例的具體年份

+1

只是爲了讓你知道,2400將返回0.所以它失敗了。 – 2013-11-21 07:48:43

11

一個開張一年是一個閏年另一個名字。使用L格式,其中$year是要測試的一年:

echo (date('L', strtotime("$year-01-01")) ? 'Yes' : 'No'); 

要調整 日曆和季節之間的不一致,朱利安 日曆所用的 希臘天文學家Sosigene的計算,是 基於通過365.25天 年:3年365天,其次是 年366天,補充日 被添加後總是在第二天 二月(sexto前日曆Martiis =三月日曆前的第六天)被稱爲雙性戀( 第六天之二),因此名稱爲 平分日和平分日爲 閏日。全年共分12 個月,其中31日和30日分別爲012和16日,2月份分別爲 年,29日和30日,分別爲 年。

後來,當第八個月份是 獻給皇帝奧古斯 (8月),本月初作出的31天 匹配七月,獻給凱撒月 。這就是爲什麼 二月份是由28天製成的,在平分年份裏有 29天。

http://news.softpedia.com/news/The-History-of-Modern-Calendar-and-Bisect-Year-79892.shtml

2
function is_leap_year($year) 
{ 
    return ((($year % 4) == 0) && ((($year % 100) != 0) || (($year %400) == 0))); 
} 
2

使用DateTime類:

$year = 2000; 
$isLeap = DateTime::createFromFormat('Y', $year)->format('L') === "1"; 
var_dump($isLeap); // bool(true)