Foros del Web » Programando para Internet » PHP »

Obtener formato de tiempo restante entre fechas

Estas en el tema de Obtener formato de tiempo restante entre fechas en el foro de PHP en Foros del Web. Hola a todos quería saber dadas dos fechas por ejemplo $fecha1="27-10-2011 09:48"; $fecha2="29-10-2011 22:48"; Como obtener el resultado de diferencia entre ambas en formato por ...
  #1 (permalink)  
Antiguo 27/10/2011, 04:46
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Exclamación Obtener formato de tiempo restante entre fechas

Hola a todos quería saber dadas dos fechas por ejemplo

$fecha1="27-10-2011 09:48";

$fecha2="29-10-2011 22:48";


Como obtener el resultado de diferencia entre ambas en formato por ejemplo : quedan 2 dias 13 horas 20 minutos y 10 segundos


He tratado de hacerlo por mi mismo pero no consigo los resultados deseados

Un saludo y espero vuestras respuestas , gracias a todos
  #2 (permalink)  
Antiguo 27/10/2011, 04:50
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 8 meses
Puntos: 89
Respuesta: Obtener formato de tiempo restante entre fechas

¿Qué función has utilizado para obtenerlo?

¿Has probado con mktime?
  #3 (permalink)  
Antiguo 27/10/2011, 05:29
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Respuesta: Obtener formato de tiempo restante entre fechas

Estoy usando strtotime de php , pero que no doy dado con el resultado que deseo en ese formato , si puede que se reste el dia y eso pero no doy hecho el tema y era para ver si alguno sabeís como puedo obtener ese resultado o así , muchas gracias , saludos
  #4 (permalink)  
Antiguo 27/10/2011, 05:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Respuesta: Obtener formato de tiempo restante entre fechas

mktime tambien lo he probado pero el caso es qu eno se como hacerlo más o menos solo pero no obtengo el resultado que es sacar de entre las dos fechas la diferencia digamos en formato dada la fecha inicial con horas minutos y segundos la diferencia final entre ambas con el mismo formato de dias horas minutos y segundos restantes
  #5 (permalink)  
Antiguo 27/10/2011, 05:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Exclamación Respuesta: Obtener formato de tiempo restante entre fechas

Vi esta función en foros del web pero no se si yo la aplico mal o simplemente no funciona :


Código PHP:

function timeBetween($desde,$hasta) {
    
$ini explode(" ",$desde);
    
$fIni $ini[0];
    
$hIni $ini[1];
    
$fIni explode("-",$fIni);
    
$hIni explode(":",$hIni);

    
$fin explode(" ",$hasta);
    
$fFin $fin[0];
    
$hFin $fin[1];
    
$fFin explode("-",$fFin);
    
$hFin explode(":",$hFin);

    
$anos $fFin[0] - $fIni[0];
    
$meses $fFin[1] - $fIni[1];
    
$dias $fFin[2] - $fIni[2];
    
$horas $hFin[0] - $hIni[0];
    
$minutos $hFin[1] - $hIni[1];
    
$segundos $hFin[2] - $hIni[2];
    
    if (
$segundos 0) {
        
$minutos--;
        
$segundos 60 $segundos;
    }
    if (
$minutos 0) {
        
$horas--;
        
$minutos 60 $minutos;
    }
    if (
$horas 0) {
        
$dias--;
        
$horas 24 $horas;
    }
    if (
$dias 0)
    {
        --
$meses;
        switch (
$fIni[1]) {
            case 
1:     $dias_mes_anterior=31; break;
            case 
2:     $dias_mes_anterior=31; break;
            case 
3:
                if (
checkdate(2,29,$fIni[0]))
                {
                    
$dias_mes_anterior=29; break;
                } else {
                    
$dias_mes_anterior=28; break;
                }
            case 
4:     $dias_mes_anterior=31; break;
            case 
5:     $dias_mes_anterior=30; break;
            case 
6:     $dias_mes_anterior=31; break;
            case 
7:     $dias_mes_anterior=30; break;
            case 
8:     $dias_mes_anterior=31; break;
            case 
9:     $dias_mes_anterior=31; break;
            case 
10:     $dias_mes_anterior=30; break;
            case 
11:     $dias_mes_anterior=31; break;
            case 
12:     $dias_mes_anterior=30; break;
        }

        
$dias=$dias $dias_mes_anterior;
    }
    if (
$meses 0)
    {
        --
$anos;
        
$meses $meses 12;
    }
    return array(
"años" => $anos,
                
"meses" => $meses,
                
"dias" => $dias,
                
"horas" => $horas,
                
"minutos" => $minutos,

                
"segundos" => $segundos);








$desde="25-10-2011 08:42:16";
$hasta="29-10-2011 10:42:16";

echo 
timeBetween($desde,$hasta); 


http://www.forosdelweb.com/f18/difer...fechas-662230/



Saludos y Gracias
  #6 (permalink)  
Antiguo 27/10/2011, 05:51
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 8 meses
Puntos: 89
Respuesta: Obtener formato de tiempo restante entre fechas

No te funciona porque no has leido que el formato para la función es: (Y-m-d H:i:s) y tú estás utilizando (d-m-Y H:i:s) además de que el resultado lo muestra en una array y estás usando echo. Prueba así:

Código PHP:
Ver original
  1. $desde="2011-10-25 08:42:16";
  2. $hasta="2011-10-29 10:42:16";
  3.  
  4. print_r (timeBetween($desde,$hasta));
  #7 (permalink)  
Antiguo 27/10/2011, 10:59
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Obtener formato de tiempo restante entre fechas

Pues usar la clase DateTime

Código PHP:
Ver original
  1. <?php
  2. $dt1 = new DateTime('27-10-2011 09:46:59');
  3. $dt2 = new DateTime('29-10-2011 22:48:00');
  4. $i = $dt1->diff($dt2);
  5. echo $i->format('quedan %a dias %h horas %i minuto(s) %s segundo(s)');
  6. //quedan 2 dias 13 horas 1 minuto(s) 1 segundo(s)
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 27/10/2011, 14:06
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Respuesta: Obtener formato de tiempo restante entre fechas

Muchas gracias a todos lo acabo de ver ahora y lo voy a testear , saludos y gracias de nuevo
  #9 (permalink)  
Antiguo 27/10/2011, 14:23
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Respuesta: Obtener formato de tiempo restante entre fechas

He probado lo que me comentaís y DateTime no me lo permite por desgracia en mi alojamiento puesto que usan php 5.2 , hay algun script o clase o algo que pueda ayudarme en lo que quiero conseguir , muchas gracias y saludos a todos nuevamente
  #10 (permalink)  
Antiguo 27/10/2011, 14:33
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Obtener formato de tiempo restante entre fechas

que tal algo así:


Código PHP:
Ver original
  1. $fecha1="27-10-2011 09:49:10";
  2. $fecha2="29-10-2011 22:48:00";
  3. $diff = strtotime($fecha2) - strtotime($fecha1);
  4. $dias = $diff/(60*60*24);
  5. $horas = ($dias-intval($dias))*24;
  6. $min = ($horas-intval($horas))*60;
  7. $seg = ($min-intval($min))*60;
  8. echo "quedan ".intval($dias)." dias ".intval($horas)."  horas ".intval($min)." minutos ".intval($seg)." segundos";

Saludos.

Etiquetas: formato
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:35.