Foros del Web » Programando para Internet » PHP »

Problema con datetime

Estas en el tema de Problema con datetime en el foro de PHP en Foros del Web. Tengo dos fechas en formato datetime = 0000-00-00 00:00:00 y quiero hacer una simple diferencia entre ellas, pero cuando ejecuto el siguiente código: Código PHP: ...
  #1 (permalink)  
Antiguo 20/03/2012, 18:00
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Problema con datetime

Tengo dos fechas en formato datetime = 0000-00-00 00:00:00 y quiero hacer una simple diferencia entre ellas, pero cuando ejecuto el siguiente código:

Código PHP:
$intervalo date_diff($fecha_inicial$fecha_final);
$intervalo->format("%h horas %i minutos %s segundos"); 
El navegador me suelta:

Cita:
Es probable que el servidor donde se aloja la página web se haya sobrecargado o que se haya producido un error. Para evitar un exceso de tráfico que empeore la situación, Google Chrome ha dejado de enviar solicitudes al servidor temporalmente.

Si crees que esta acción es inadecuada (por ejemplo, si estás depurando tu propio sitio web), visita la página chrome://net-internals/#httpThrottling, donde puedes encontrar más información o inhabilitar esta función.
Error 139 (net::ERR_TEMPORARILY_THROTTLED): Se ha limitado temporalmente el envío de solicitudes al servidor.
o a veces carga vació, sin devolver el valor tengo que decir que el código esta dentro de un while.

¿Que es lo que estoy haciendo mal?


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 20/03/2012, 18:03
Avatar de Joty89  
Fecha de Ingreso: marzo-2012
Mensajes: 8
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema con datetime

Te recomiendo que uses varchar, este acepta tooodos los valore y no afecta en nada
  #3 (permalink)  
Antiguo 20/03/2012, 19:56
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema con datetime

si usas mysql te recomiendo que lo hagas desde allá con el datediff
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 21/03/2012, 22:14
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Problema con datetime

Holas,

En PHP podrias usar el mktime y luego recien hacer las comparaciones, sumas, restas, diferencias, etc.

http://php.net/manual/en/function.mktime.php

Saludos
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 22/03/2012, 02:07
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Respuesta: Problema con datetime

Gracias por las respuestas, el problema con el datediff:

Código PHP:
select datediff('".$fecha_inicial."','".$fecha_final."'
es que me devuelve días y si la diferencias son horas devuelve 0, e probado:

Código PHP:
select datediff('hour','".$fecha_inicial."','".$fecha_final."'
pero peta, tanto ponga hour, h o hh.

luego probe con timediff y si me devuelve la diferencia de horas, pero si por ejemplo resto:

Código:
2012-03-16 21:59:00 - 2012-03-16 21:59:29
devuelve -00:00:29 con un valor negativo, por algun lado lei que convirtiendo las fechas en la base de datos de datetime a timestamp, se soluciona, el problema es que MySQL solo dejar guardar dentro de una tabla un solo campo de tipo timestamp.

Esto ultimo que me comentáis del mktime, tengo que ver como funciona.


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #6 (permalink)  
Antiguo 22/03/2012, 06:40
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Problema con datetime

En MySQL con un simple ABS puedes tener la diferencia en DIAS con DATEDIFF y el valor lo podrias dar como positivo con ABS:

SELECT ABS(DATEDIFF ('".$fecha_inicial."','".$fecha_final."') )

http://dev.mysql.com/doc/refman/5.1/...ction_datediff

En Dias, Horas y Minutos

Código MySQL:
Ver original
  1. /* DIAS: */
  2. SELECT FLOOR(HOUR(TIMEDIFF('".$fecha_inicial."','".$fecha_final."') )/24);
  3.  
  4. /* HORAS: */
  5. SELECT MOD(HOUR(TIMEDIFF('".$fecha_inicial."','".$fecha_final."') ), 24);
  6.  
  7. /* MINUTOS: */
  8. SELECT MINUTE(TIMEDIFF('".$fecha_inicial."','".$fecha_final."') );

http://dev.mysql.com/doc/refman/5.1/...ction_timediff

Tambien con el TIMESTAMPDIFF podrias hacerlo

Creo que esto seria tema de Base de datos, pero en PHP facilmente lo puedes tener con mktime:

http://php.net/manual/en/function.mktime.php


Saludos
__________________
.: Gildus :.

Etiquetas: datetime
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 20:10.