2011-04-15 25 views

Respuesta

18

Puede utilizar la función de PHP date() hacer esto ...

// 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.'; 

Avísame si esto hace este truco para ti, ¡Salud!

ACTUALIZACIÓN: Ejemplo Agregado para el año específico

+1

100. Sólo para dejarte saber, 2400 devolverá 0. Entonces falla allí. –

11

Un bisect años es otro nombre para un año bisiesto . Utilice el formateador L, donde $year es el año en que se está probando:

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

Para ajustar la discordancia entre el calendario y las estaciones , el calendario Juliano utiliza los cálculos de la astrónomo griego Sosigene y fue basado en la adopción de 365.25 días año: 3 años de 365 días seguidos de a 366 días al año, el día suplementario se agrega siempre después del 24 de Febrero (sexto ante calendas Martiis = el sexto día antes de las calendas de marzo) siendo llamado bis sexto (el sexto día bis), de ahí los nombres de bisecto y biseca de día para el día bisiesto. El año se dividió en 12 meses, que alternaron 31 y 30 días y febrero tuvo, en años normales, 29 días y 30 días en bisección años.

Más tarde, cuando el octavo mes era dedicado al emperador Augusto (agosto), este mes se hizo de 31 días para que coincida con julio, el mes dedicada a Julio César. Es por eso que Febrero se hizo de 28 días, teniendo 29 días en años bisectos.

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

Utilización de la clase DateTime:

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