Comparar fechas en formato MySQL con PHP
Es un problema con el que cualquier persona que utilice PHP y MySQL se encuentra muy a menudo. Hasta que PHP no trate directamente esos datos y se sobrecarguen internamente los operadores de comparación para que todo sea directo, tendremos que valernos de métodos como el que os muestro para poder comparar dos fechas en formato MySQL con PHP (formato MySQL, es decir fecha en formato inglés con guiones y el orden invertido respecto al nuestro).
La siguiente función devuelve:
- 1 si la fecha a es mayor que la fecha b
- 0 si son iguales
- -1 si la fecha a es menor que la fecha b
function comparar_fechas_mysql($a, $b) { $a_v=explode("-",$a); $anyo_a = $a_v[0]; $mes_a = $a_v[1]; $dia_a = $a_v[2]; $b_v=explode("-",$b); $anyo_b = $b_v[0]; $mes_b = $b_v[1]; $dia_b = $b_v[2]; if($anyo_a > $anyo_b) return 1; else { if($anyo_a < $anyo_b) return -1; else { if($mes_a > $mes_b) return 1; else { if($mes_a < $mes_b) return -1; else { if($dia_a > $dia_b) return 1; else { if($dia_a < $dia_b) return -1; else return 0; } } } } } }
Esperamos vuestras sugerencias, mejoras y rectificaciones de este y todos los tips de programación que vayamos incorporando.