Foros del Web » Programando para Internet » PHP »

Otra de fechas y horas.

Estas en el tema de Otra de fechas y horas. en el foro de PHP en Foros del Web. Que tal, tengo la necesidad de realizar la siguiente operacion: $dato1 = '2009-12-26 17:00'; $dato2 = '3.5'; lo que quiero hacer es restarle 3 horas ...
  #1 (permalink)  
Antiguo 06/12/2009, 19:46
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 10 años, 6 meses
Puntos: 1
Otra de fechas y horas.

Que tal, tengo la necesidad de realizar la siguiente operacion:

$dato1 = '2009-12-26 17:00';
$dato2 = '3.5';

lo que quiero hacer es restarle 3 horas y media a dato1 y este me regrese 2009-12-26 13:30, tomando encuenta la FECHA es decir si la hora fuera 03:00 (AM, madrugada, formato 24hrs. )al realizar la operacion el resultado seria 2009-12-25 23:30

Es decir me retrocedio un dia la fecha.

he intentado con date y strtotime y posteriormente restar, como me han sugerido pero no obtengo el resultado deseado.

alguna ayuda ?
  #2 (permalink)  
Antiguo 07/12/2009, 00:30
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 14 años, 9 meses
Puntos: 25
Respuesta: Otra de fechas y horas.

lo veo algo complejo por que 3.5 no es hora y para comparar horas deben ser horas con horas fechas con fechas! se es un argumento que debes tener claro en la programación... te sería más factible que guardaras todo en un mismo formato.... y así se te daria una solución más concreta
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 07/12/2009, 09:16
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Otra de fechas y horas.

si dato2 fuera 03:30 seria mas faciel ? porque le puedo dar ese formato a dato2
  #4 (permalink)  
Antiguo 07/12/2009, 09:46
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 1 mes
Puntos: 334
Respuesta: Otra de fechas y horas.

estube probando y solo logre esto.. ojala te sirva

Código php:
Ver original
  1. $dato1 = '2009-12-26 17:00';
  2. $dato2 = '03:30';
  3. list($hora, $minutos) = explode(":",$dato2);
  4. $datetime = new DateTime($dato1);
  5. $datetime->modify("-$hora hours -$minutos mins");
  6. echo $datetime->format("Y-m-d h:i");

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 07/12/2009, 12:14
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Otra de fechas y horas.

Hey gracias Hidek1, yo habia hecho esto
Código PHP:
/*
 @param ddate Departure Date                        
 @param dtime Departure Time                            
 @param dest Destination Time
*/
function pickup($ddate,$dtime,$dest){
    
//array fecha
    
$ddate explode('-',$ddate);
    
//pasamos a minutos Destination Time
    
$dest $dest*60;
    
//array departure time
    
$dtime explode(':',$dtime);
    
//pasamos horas a minutos y sumamos los minutos entre si, despues restamos para obtener los minutos total del pickup
    
$dtimemin = ($dtime[1] + $dtime[0] * 60) - $dest;
    
//sacamos la hora
    
$pickuphour floor($dtimemin 60);
    
//sacamos minutos
    
$pickupmin $dtimemin 60;
    
//damos formato a la hora
    
return ($pickupdatetime date("Y-m-d H:i"mktime($pickuphour$pickupmin0$ddate[1], $ddate[2],$ddate[0])));
}

$departure_date '2009-12-28';
$departure_time '02:00'//Formato 24 hrs esto es 02:00 AM
$destination_time '3';

$final pickup($departure_date$departure_time$destination_time);
echo 
$final
que es lo que mi muy limitado conocimiento de php me permite hacer, ya que ignoraba la clase DateTime. Pero veo que tu codigo es mucho mas corto, optimizado y facil de entender, si no te molesta utilizare el tuyo y pondre el mio en el baul de los recuerdos jajaja
Gracias
  #6 (permalink)  
Antiguo 07/12/2009, 12:17
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 1 mes
Puntos: 334
Respuesta: Otra de fechas y horas.

claro q no me molesta por eso lo publique aca :P


PD:
el estandard de los comentarios es asi porsiacaso

Código php:
Ver original
  1. /**
  2.  * Descripcion
  3.  *
  4.  * @param
  5.  * @return
  6.  */

:P
__________________
More about me...
~ @rhyudek1
~ Github

Última edición por Hidek1; 07/12/2009 a las 12:23
  #7 (permalink)  
Antiguo 07/12/2009, 15:22
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Otra de fechas y horas.

gracias de nuevo :P
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:38.