PHP - Dias diferencia

   
Vista:

Dias diferencia

Publicado por siREZ (6 intervenciones) el 02/01/2018 19:38:21
Cordial saludo.
Estoy calculando los días diferencia entre dos fecha.
trabajó muy bien hasta que llego el 2018
no funciona adecuadamente cuando el año es diferente.
mi código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$fec=mysql_result($iquery,$irow,(fecha));
$ven=mysql_result($iquery,$irow,(vence));
$fecha1 = $fec;
$fecha2 = date("Y-m-d");
$fecha2a = strtotime($fecha2,time());
$fecha1a = strtotime($fecha1,time());
$ano1 = substr($fecha2,0,4);
$mes2 = substr($fecha2,5,2);
$dia2 = substr($fecha2,08,2);
$ano2 = substr($ven,0,4);
$mes1 = substr($ven,5,2);
$dia1 = substr($ven,08,2);
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(4,12,0,$mes2,$dia2,$ano2);
$segundos_diferencia = $timestamp1 - $timestamp2;
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
$dias_diferencia = abs($dias_diferencia);
$dias_diferencia = floor($dias_diferencia);
$dias_diferencia = round($dias_diferencia/30,0);

Alguien me puede ayudar?

Gracias

siREZ
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abzerox

Dias diferencia

Publicado por abzerox (138 intervenciones) el 03/01/2018 00:44:02
Hola siRez, te dejo una pequeña función que te puede servir, modificala a tu gusto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
/**
 * compare_dates
 * Compara dos fechas y devuelve la diferencia en dias.
 * Recibie dos fechas con formato DD-MM-AAAA.
 * Retorna `false` en caso de que alguna de las fechas no sea valida. De lo contrario retorna un `int`.
 * @param  string $fd first date
 * @param  string $sd second date
 * @return false|int
 */
function compare_dates($fd, $sd) {
    list($first_date_day, $first_date_month, $first_date_year) = explode('-', $fd);
    list($second_date_day, $second_date_month, $second_date_year) = explode('-', $sd);
    $first_date_julian  = gregoriantojd($first_date_month, $first_date_day, $first_date_year);
    $second_date_julian = gregoriantojd($second_date_month, $second_date_day, $second_date_year);
 
     if (!checkdate($first_date_month, $first_date_day, $first_date_year) ||
	!checkdate($second_date_month, $second_date_day, $second_date_year)) {
        return false;
      }
      return abs($first_date_julian - $second_date_julian);
}

En tu caso, la usarias así:

1
2
3
4
5
$fecha1 = $dia1.'-'.$mes1.'-'.$anio1;
$fecha2 = $dia2.'-'.$mes2.'-'.$anio2;
$diferenecia = compare_dates($fecha1, $fecha2);
 
echo 'Diferencia de días: ' . $diferencia;

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Dias diferencia

Publicado por siREZ (6 intervenciones) el 04/01/2018 18:52:36
Perfecto.

Muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad