elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ver horas de diferencia de una fecha y otra..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ver horas de diferencia de una fecha y otra..  (Leído 2,071 veces)
SrTrp


Desconectado Desconectado

Mensajes: 328


Script/C#


Ver Perfil
Ver horas de diferencia de una fecha y otra..
« en: 25 Agosto 2018, 06:12 am »

Bueno estoy usando para ver la fecha unix para así tener un mejor control ahora lo que quiero es saber cuantas horas le faltan para un dia , lo que hago es crear una variable con la fecha actual y otra con la fecha actual +1 dia y esto lo que intento hacer pero no mas no queda.
Código
  1.            $ahora = new DateTime(strtotime("now"));
  2.            $diamas = new DateTime(strtotime ( '+1 day' , strtotime ( "now" ) ));
  3.            $diferencia = $diamas->diff($ahora);
  4.            echo $diferencia->format('Faltán %h horas..');
  5. //tambien intente así
  6. $ahora = strtotime("now");
  7.            $diamas = strtotime ( '+1 day' , strtotime ( "now" ) );
  8.            $diferencia = $diamas->diff($ahora);
  9.            echo $diferencia->format('Faltán %h horas..');
  10.  
  11.  


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Ver horas de diferencia de una fecha y otra..
« Respuesta #1 en: 25 Agosto 2018, 17:46 pm »

Hola,

1. Recuerda que DateTime también permite expresiones.

http://php.net/manual/es/class.datetime.php
http://php.net/manual/es/datetime.formats.relative.php

Es decir, strtotime, realmente no te hace falta.

2. DateTime no admite timestamp en el constructor. Tendrias que usar setTimestamp() si quieres utilizar el Timestamp.
Código
  1. $actual = new DateTime();
  2. $actual->setTimestamp(strtotime('now'));
  3.  
  4. $futuro = new DateTime();
  5. $futuro->setTimestamp(strtotime('+1 day', strtotime('now')));


3. Lo que estás haciendo en la línea 2, es decirle que te de la hora de ahora + un dia (24 horas), por lo tanto, siempre te devolverá 24 horas de diferencia a no ser que ocurra un cambio de horario en medio. Si lo que quieres saber, es cuánto falta para que sea mañana, basta con que uses tomorrow eso te dira cuanto falta para las 00:00 del dia siguiente.

Código
  1. $actual = new DateTime('now');
  2. $futuro = new DateTime('tomorrow');

4. Lo que devuelve el método diff, es una diferencia ya formateada. Es decir, parseada en años, meses, días, horas, minutos y segundos. Por lo tanto, la máxima diferencia de hora que te va a devolver, es 24, la máxima diferencia de días 31 etc.. podrías hacer una función para convertir años a meses, meses a dias y dias a horas, pero seria inexacta cuanto menos pues febrero por ejemplo tiene 28/29 días, y en los demás meses tienes una diferencia de entre 30 y 31 días. La solución, pasa por usar la propiedad 'days' que devuelve el cómputo total de los días que faltan para la fecha indicada en el dif... a eso además, le tendrás sumas las horas que indica que faltan.

Código
  1. $actual = new DateTime('now');
  2. $fecha = new DateTime('tomorrow');
  3.  
  4. $intervalo = $actual->diff($fecha);
  5. $diferenciaHoras = ($intervalo->days * 24) + $intervalo->h;
  6.  
  7.  
  8. if($fecha > $actual){
  9.    echo 'Faltan ', $diferenciaHoras, ' horas para ', $fecha->format('d/M/Y H:i:s');
  10. } else {
  11.    echo 'Han pasado ', $diferenciaHoras, ' desde el ', $fecha->format('d/M/Y H:i:s');
  12. }

Saludos


« Última modificación: 25 Agosto 2018, 17:50 pm por #!drvy » En línea

SrTrp


Desconectado Desconectado

Mensajes: 328


Script/C#


Ver Perfil
Re: Ver horas de diferencia de una fecha y otra..
« Respuesta #2 en: 26 Agosto 2018, 07:25 am »

Gracias me ah servido para lo que quería, es almacenar la fecha de 1 día mas en la hora actual cuando se realiza una acción..
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Contar horas desde cierta fecha.
Programación Visual Basic
Ch3ck 2 3,161 Último mensaje 23 Febrero 2009, 00:00 am
por Ch3ck
diferencia entre una etiqueta y otra
Desarrollo Web
javierr 1 2,668 Último mensaje 11 Enero 2011, 14:02 pm
por madpitbull_99
otra rallada de video en youtube de 3 horas y 39 minutos :D
Foro Libre
beholdthe 3 3,291 Último mensaje 11 Agosto 2011, 07:17 am
por Marmol
Duda con algoritmos para pasar una fecha a días y calcular la diferencia.
Programación C/C++
seryioo 5 3,461 Último mensaje 5 Agosto 2015, 01:21 am
por seryioo
No me dice la diferencia de horas entre una fecha y otra
PHP
SrTrp 4 2,073 Último mensaje 19 Diciembre 2018, 04:48 am
por SrTrp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines