Calcular dias de diferencia

Script PHP para calcular los días de diferencia que hay entre dos fechas.
Este codigo nos puede servir para calcular el tiempo transcurrido entre 2 fechas, para solucionar esto usaremos una funcion que lo resolvera facilmente.

Es muy sencillo. Vamos a obtener los valores timestamp de las dos fechas. (Timestamp son los segundos que han pasado desde las cero horas del 1 de enero de 1970)
Usaremos mktime para trabajar con fechas, esta funcion función recibe varios parámetros:
mktime ( [int hora [, int minuto [, int segundo [, int mes [, int dia [, int anyo [, int es_dst]]]]]]] )

El primer parámetro es la hora, luego los minutos y segundos. Luego los meses, días y años. Con todos esos valores nos devuelve el timestamp de una fecha cualquiera. Podemos omitir parámetros y en ese caso tomará los valores de la fecha actual del servidor.

dejo un ejemplo de como seria el codigo terminado:

function calculaDias($desde,$hasta) {
/* USAMOS UNA FUNCION LLAMA DA MKTIME LA CUAL TIENE LA SINTAXIS SIGUIENTE
mktime ( [int hora [, int minuto [, int segundo [, int mes [, int dia [, int anyo [, int es_dst]]]]]]] )
*/

// CALCULO DE LA EDAD———————————————->
//$fecha1= date (“Y-m-d”);

// separamos los datos con la función explode.
$f1=explode(“-“,$desde);
$f2=explode(“-“,$hasta);
echo “f1: “.$f1.” fecha1: “.$hoy.”
“;
echo “f2: “.$f2.” fecha2: “.$fecha2.”
“;
//fecha1
$dia1=intval($f1[2]);
$mes1=intval($f1[1]);
$ano1=intval($f1[0]);
echo “dia1: “.$dia1.” mes1: “.$mes1.”. ano1: “.$ano1.”
“;
//FECHA 2
$dia2=intval($f2[2]);
$mes2=intval($f2[1]);
$ano2=intval($f2[0]);
echo “dia2: “.$dia2.” mes2: “.$mes2.”. ano2: “.$ano2.”
“;
//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(0,0,0,$mes2,$dia2,$ano2);

//resto a una fecha la otra
$segundos_diferencia = $timestamp1 – $timestamp2;

//convierto segundos en días
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);

//obtengo el valor absoulto de los días (quito el posible signo negativo)
$dias_diferencia = abs($dias_diferencia);

//quito los decimales a los días de diferencia
$dias_diferencia = floor($dias_diferencia);

return $dias_diferencia;
}

$fecha1 = “2007-12-16”;
$fecha2 = “2007-8-1”;
echo “

diferencia :” .calculaDias($fecha1,$fecha2);

?>

Anuncios

About exequielc

Hola! Estás en el blog de Exequiel Catalani. Como es un blog, se trata de una extensión más o menos lineal de las cosas que hago y pasan por mi cabeza: ciberculturas, videos de la red, nuevos medios y tecnologia, y Programacion etc...

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: