Calcular año bisiesto en php

Tenemos varios métodos en php para saber si un año es bisiesto:

  • Mediante operaciones matemáticas. Las condiciones de un año bisiesto son que sea divisible entre 4 o 400 excepto si es divisible entre 100
  • Utilizando la función checkdate() de php, comprobando si existe la fecha del 29 de febrero
  • Utilizando la función date(‘L’)

Mediante operaciones matemáticas

Como hemos visto anteriormente, debemos comprobar si el año es divisible entre 4 o 400 y no divisible entre 100.

function esBisiesto($anio) {
    return !($anio % 4) && ($anio % 100 || !($anio % 400));
}

Utilizando la función checkdate()

Otra alternativa es con la función checkdata(). Como todos los años bisiestos tiene un día , en concreto el 29 de febrero, podemos comprobar si es correcta la fecha del 29 de febrero de $anio

function esBisiesto($anio=null) {
	return checkdate(2, 29,($anio==null) ? date('Y') : $anio);
}

Utilizando la función date(‘L’)

PHP en su función date nos puede ser útil para comprobar is un año es bisiesto. Tan solo debemos llamarla con el parámetro 'L' y pasandole una cadena timestamp con la fecha a comprobar:

function esBisiesto($anio=null) {
	return date('L',($anio==null) ? time(): strtotime($anio.'-01-01'));
}

if ((bool)esBisiesto()) {
	echo "es año bisiesto!";
}else{
	echo "no es año bisiesto!";
}

En el ejemplo anterior, si llamamos a la función esBisiesto() pasando como parámetro un año, comprobara si ese año indicado es bisiesto. En caso de no pasar ningún año, comprobara el año actual.

Comentar