Para sumar o restar horas, minutos, segundos en PHP, a partir de la versión 5 es muy simple, simplemente tenemos que hacer lo siguiente:
Sumar y restar horas, minutos, segundos en PHP 5 o superior
1 2 3 4 5 | $date = new DateTime(); $date->modify('-2 hours'); $date->modify('+10 minute'); $date->modify('-30 second'); echo $date->format('d-m-Y H:i:s'); |
En esta función lo que hacemos es restarle 2 horas, sumamos 10 minutos y restamos 30 segundos, a la hora actual y la mostramos, así de simple.
Si por ejemplo nos encontramos con PHP 4 o queremos saber otros métodos para hacerlo, es también bastante simple, aunque un poco más complicado que antes.
Imagino que no os hará falta este método, porque ya nadie va con PHP 4 pero por si acaso os dejo a continuación el código que usaríamos en ese caso.
Sumar y restar horas, minutos, segundos en PHP 4
1 2 3 4 5 6 | $date= date('Y-m-j H:i:s'); $newDate = strtotime ( '-2 hour' , strtotime ($date) ) ; $newDate = strtotime ( '+10 minute' , $newDate ) ; $newDate = strtotime ( '-30 second' , $newDate ) ; $newDate = date ( 'Y-m-j H:i:s' , $newDate); echo $newDate; |
Le quitaremos a la fecha actual, 2 horas, añadiremos 10 minutos y restaremos 30 segundos. No creo que nunca tengamos que hacer un cálculo tan raro, pero era para que vierais como se puede sumar y restar horas, minutos y segundos a una fecha si lo tuvieramos que hacer en PHP 4.
Espero que os haya servido, como veis en PHP 5 o superior es muy simple y en PHP 4 es un poco más complicado pero también es muy sencillo.
Y recordad! No olvidéis comentar! Vuestro código y en el Blog 😉
Jose
Justo lo que buscaba gracias
Oyagum
Me alegro que te haya servido de verdad 🙂
javier
le resto 5 horas o 2?
Oyagum
Uish.. que fallo, gracias, lo corrijo ahora mismo 🙂
Oscar
Hola buena noche, gracias por la ayuda me sirvio de mucho.
Solo tengo un tema, ¿como le asigno las horas mediante una variable ?
Ya que si le pongo $hrs me pone la fecha de 31 12 1957 algo asi.
Muchas GRACIAS POR YA AYUDA
Oyagum
Buenas,
No se si te he entendio pero imagino que te refieres a poner una hora en concreto a la que sumarle lo que necesites.
Puedes hacerlo con el comando de php settime https://www.php.net/manual/es/datetime.settime.php
Espero te sirva de ayuda.
Yorsh
excelente, me ha servido mucho, lo necesitaba para saber cuando un token expiraba (5minutos) y me sirvio para sacar la diferencia en minutos y realizar mis pruebas
Gustavo Blanco
//FECHA con 20 minutos extra
$fecha2 = date (‘Y-m-d H:i:s’,strtotime (‘+25 minute’,strtotime (date(‘Y-m-d H:i:s’))));
Osvaldo Callegari
Hola , Alguna opción para ir totalizando la cantidad de minutos para un footer.php en un campo datetime? de mysql
Necesito calcular el total de horas y minutos.
Muchas Gracias
Oyagum
Lo siento no acabo de entender que es lo que necesitas, a ver si pudieras extender tu explicación para mirar de ayudarte en lo máximo posible. Un saludo!