Hola amigos!
En este pequeño tutorial aprenderemos a manipular fechas en PHP, de manera básica, utilizando las funciones:
- date()
- strtotime()
function date()
Ésta función nos permite obtener una fecha, hora o tiempo según el formato indicado, por ejemplo, si queremos obtener la hora actual del sistema solo deberiamos hacer lo siguiente
echo date(“Y-m-d”); //obtiene la fecha del sistema
echo date(“Y-m-d H:i:s”); //obtiene la fecha y la hora del sistema
El formato de fecha para la base de datos es el siguiente “Y-m-d” el cual nos retorna este formato 2012-03-22, puedes profundizar más sobre el uso de ésta funcion en la página oficial de php: function date
function strtotime()
Ésta función es bastante interesante, ya que según el parámetro (string con formato de fecha u hora y fecha) y una instancia de tiempo, ésta funcion nos retornará un int, el cual representa la instancia del tiempo procesada, ejemplo:
Hoy es 2012-03-22 y a ésta fecha queremos quitarle 3 días
echo strtotime(“-3d”);Si queremos mostrar la instancia de tiempo del dia 2012-03-21
echo strtotime(“2012-03-21″);
Ahora veamos como manipular fechas en php
He creado una función la cual quiero compartir con ustedes, ésta funcion recibe 3 parámetros, los cuales son:
- Fecha principal, fecha de la cual queremos restar otra fecha
- Fecha secundaria, fecha a restar de la fecha principal
- Formato de Salida, si queremos dias pones “d”, si queremos meses “m” si queremos fecha completa “Y-m-d”;
Aquí la función:
function DiferenciaEntreFechas($fecha_principal, $fecha_secundaria, $formato_salida){
$f0 = strtotime($fecha_principal);
$f1 = strtotime($fecha_secundaria);
if ($f0 < $f1) { $tmp = $f1; $f1 = $f0; $f0 = $tmp; }
return date($formato_salida, $f0 - $f1);
}
La función es for dummies, en caso de que la fecha secundaria sea mayor a la fecha principal, pues igual nos hará una resta, la función se encargará de invertir las fechas y asi hacer la resta sin ningún problema
Ejemplo de uso:
$fecha_0 = “2012-03-19″; //fecha principal
$fecha_1 = “2012-03-22″; //fecha secundariaecho DiferenciaEntreFechas($fecha_0, $fecha_1, “d”); // respuesta, devuelve “04″
Espero ésta funcion les sea útil, hasta luego



