Foros del Web » Programando para Internet » PHP »

Consulta resta de tiempo a string

Estas en el tema de Consulta resta de tiempo a string en el foro de PHP en Foros del Web. Hola a todos!!! vengo con un inconveniente que se me plantea... Tengo un dato string guardado en mysql con el formato por ej "14:00" o ...
  #1 (permalink)  
Antiguo 20/10/2012, 14:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 10 meses
Puntos: 0
Consulta resta de tiempo a string

Hola a todos!!! vengo con un inconveniente que se me plantea... Tengo un dato string guardado en mysql con el formato por ej "14:00" o "16:45" al que debo restarle una cantidad de horas fijas (6) para imprimirlo por pantalla. Mi consulta es como hacer para realizar esta operacion. Debo pasar el strtotime? de ser asi, como hago luego para restarle las 6 horas y sino, como creen que es la mejor opcion para hacerlo.

Muchas gracias!!!
  #2 (permalink)  
Antiguo 20/10/2012, 21:41
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: Consulta resta de tiempo a string

si la hora tiene que ver con un dia en concreto lo mejor es que trabajes con unix timestamps desde el principio almacenando en tu base de datos la marca de tiempo con el timestamp y trabajando con ellos con date y mkdate (buscalos en la documentacion de php)

si no sabes que son los unix timestamp googlea que son ;) te lo explicaran mejor ahi

y si la fecha no está vinculada a un dia pues... trabaja con unix timestamps obviando el dia y preocupandote simplemente de la hora

yo estoy metido en un trabajo donde tenemos que trabajar con horas, y algo asi utilizamos los primeros timestamps existentes a partir de 0 y luego para obtener la hora de cualquier dia es obtener la fecha del dia actual con el aunemto de horas deseadio, no se si me explico muy bien XD
  #3 (permalink)  
Antiguo 21/10/2012, 03:03
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Consulta resta de tiempo a string

Algo rapido y sencillo que se me viene a la cabeza...

Código PHP:
Ver original
  1. <?php
  2. $hora = '18:55:00';
  3. $horasRestar = 6;
  4.  
  5. $fecha = date('Y/m/d').' '.$hora;
  6. $unixTime = strtotime($fecha);
  7. $segundosRestar = ($horasRestar * 60) * 60;
  8. $unixFinal = $unixTime - $segundosRestar;
  9.  
  10. $horaFinal = date('H:i',$unixFinal);
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 21/10/2012, 07:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Consulta resta de tiempo a string

otra forma un tanto mas simple, pero tienes que tener php5.2+
Código PHP:
Ver original
  1. $date = new DateTime('03:14:00');
  2. echo $date->format('H:i:s');   
  3. $date->modify('-6 hours');
  4. echo "<br />" .$date->format('H:i:s');

saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 24/10/2012, 16:15
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta resta de tiempo a string

Gente muchas gracias por sus soluciones, ya lo resolvi, lo unico que me queda ahora es restar un dia a la fecha guardada en la base de datos.

En ella tengo guardada una fecha con el formato yyyy-mm-dd que se guarda seleccionandola de un calendar javascript. debo restarle un dia a una fecha determinada por ej 2012-10-24 y debe quedar en 2012-10-23 . Pense en dividir la cadena y restarle un dia al ultimo numero, pero que pasa si estamos hablando del 1 de mes, deberia cambiarse el mes y el dia, por eso es que estoy buscando si hay alguna funcion especifica para fechas.

Cualquier aporte es muy agradecido.

Saludos!!
  #6 (permalink)  
Antiguo 24/10/2012, 16:32
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: Consulta resta de tiempo a string

Es posible usar date() y mktime() juntos para buscar fechas en el futuro o en el pasado.
busca el ejemplo 3 en
http://php.net/manual/es/function.date.php

Última edición por juanito1712; 24/10/2012 a las 16:43
  #7 (permalink)  
Antiguo 24/10/2012, 20:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta resta de tiempo a string

Cita:
Iniciado por juanito1712 Ver Mensaje
Es posible usar date() y mktime() juntos para buscar fechas en el futuro o en el pasado.
busca el ejemplo 3 en
[url]http://php.net/manual/es/function.date.php[/url]
Juanito, gracias por tu ayuda, pero no termino de entender como deberia usarlo.

Tengo la fecha en la variable $_POST['fechacorte'] y quiero que ese valor que esta guardado en esa variable con el formato yyyy-mm-dd pueda almacenarlo en otra variable con un dia menos... Podrias por favor aclararme como aplicarlo a mi caso, porque no necesito restar un dia a la fecha actual, sino a la fecha que tengo guardada en esa variable que te nombre antes...

Muchas gracias por la ayuda.

Saludos
  #8 (permalink)  
Antiguo 24/10/2012, 20:12
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Consulta resta de tiempo a string

Vamos amigo, ya se te dieron varias posibles soluciones, también debes de poner de tu parte y hacer el intento por tu propia mano, en cualquiera de los 3 ejemplos dados funcionan con fechas definidas o con la fecha actual...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 24/10/2012, 20:52
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta resta de tiempo a string

Les pido disculpas, no probe las versiones anteriores porque crei que solo aplicaban para horarios. La funcion de carlos_belisario me anduvo excelente. A continuacion dejo el codigo por si alguien lo necesita.

Saludos!!!!

Código:
    $date = new DateTime($fila['fechacarga']);
    echo $date->format('Y-m-d');   
    $date->modify('-1 day');
    echo "<br />" .$date->format('Y-m-d');

Etiquetas: mysql, resta, string
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 02:53.