Foros del Web » Programando para Internet » PHP »

fechas php

Estas en el tema de fechas php en el foro de PHP en Foros del Web. Hola buenas tengo un problema quiero restar dos fechas una la tengo almacenada en mi bd en datetime y la segunda la obtengo del servidor, ...
  #1 (permalink)  
Antiguo 21/06/2010, 13:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
fechas php

Hola buenas tengo un problema quiero restar dos fechas una la tengo almacenada en mi bd en datetime y la segunda la obtengo del servidor, y quiero que el resultado me diga ejemplo: 0 dias 1 hora 30min 8seg. gracias
  #2 (permalink)  
Antiguo 21/06/2010, 13:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: fechas php

Usa la clase de DateTime. En el foro ya hay varios ejemplos de como lograr restar fechas y mostrarlo como estás indicando.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 21/06/2010, 14:18
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: fechas php

gracias lo que pasa es que esa funcion se usa a partir de cierta version de php, yo tengo php 4.3.10, lo probe de todas formas y me sale este error

Fatal error: Cannot instantiate non-existent class: datetime

Última edición por gabymar; 21/06/2010 a las 14:24
  #4 (permalink)  
Antiguo 21/06/2010, 14:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: fechas php

¿Y no puedes actualizar?, ya que las versiones menores a la 5 son obsoletas y no se están actualizando.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 22/06/2010, 07:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: fechas php

Estuve investigando y es algo complicado actualizar php a mano se corre el riesgo que no funcione bien y no puedo instalar otro servidor porque ya el sistema esta funcionando y su base de datos es grande. Coloque este codigo pero no todas las horas me las muestra correctamente.

Código PHP:
//Separo Años,Mes,Dia,Hora,Minuto,Segundo en arrays
$fecha_a =  substr($actual,0, -9);

$hora_a substr($hora,11);

list(
$año_a,$mes_a,$dia_a) = explode("/",$fecha_a);
list($horas$minutos$segundos) = explode(":"$hora);

//Obtengo fecha almacenda en DB

$fecha_db $empezo;

//Separo Años,Mes,Dia,Hora,Minuto,Segundo en arrays

$fecha_d=  substr($fecha_db,0, -9);

$hora_d substr($fecha_db,11);

list(
$año_d,$mes_d,$dia_d) = explode("/",$fecha_d);
list($horasin$minutosin$segundosin) = explode(":"$horainicio);

//Ahora resto ambas horas
$hora_total =floor($horas-$horasin);

$minuto_total =floor($minutos-$minutosin);

$segundo_total floor($segundos-$segundosin); 

Última edición por gabymar; 22/06/2010 a las 07:40
  #6 (permalink)  
Antiguo 22/06/2010, 07:35
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: fechas php

entonces intenta con mktime y/o strtotime

aunque siempre la solución óptima es actualizar .. es como si nos estuvieras preguntando algo de windows 95 :P
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 22/06/2010, 09:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: fechas php

Hola lo hice con strtotime pero no me dan las horas y de paso me la coloca en negativo, coloque el ciclo if en el caso de que hora de inicio sea mayor a la actual.


Código PHP:
list($horasin$minutosin$segundosin) = explode(":"$horainicio);
list(
$horas$minutos$segundos) = explode(":"$hora);

$tiempo_transcurrido1=floor(strtotime($horas)-strtotime($horasin));
$horat=floor($tiempo_transcurrido1/3600);
if (
$horat 0) { 
    
$difh1$horat 24;
    
$hora $difh1;
        }
    else {
    
$hora $horat;
    } 
  #8 (permalink)  
Antiguo 22/06/2010, 10:16
Avatar de Neldor  
Fecha de Ingreso: enero-2010
Mensajes: 52
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: fechas php

Yo para restar calcular eso tengo esta función

Código PHP:
function calculadias($dFecIni,$dFecFin){
    
$dFecIni str_replace('-','',$dFecIni);
    
$dFecIni str_replace('/','',$dFecIni);
    
$dFecFin str_replace('-','',$dFecFin);
    
$dFecFin str_replace('/','',$dFecFin);

    
ereg'([0-9]{1,2})([0-9]{1,2})([0-9]{2,4})'$dFecIni$aFecIni);
    
ereg'([0-9]{1,2})([0-9]{1,2})([0-9]{2,4})'$dFecFin$aFecFin);

    
$date1 mktime(0,0,0,$aFecIni[2], $aFecIni[1], $aFecIni[3]);
    
$date2 mktime(0,0,0,$aFecFin[2], $aFecFin[1], $aFecFin[3]);

    return 
round(($date2 $date1) / (60 60 24));

Pruebala y ya dirás si te va bién.
  #9 (permalink)  
Antiguo 22/06/2010, 12:11
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: fechas php

hola gracias neldor lo use pero tambien necesito restar las horas y que me muestre la diferencia entre ellas

Última edición por gabymar; 30/06/2010 a las 12:48

Etiquetas: fechas
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:04.