2011-12-18 7 views
26

Esta cosa simple ha perdido horas de mi tiempo tratando de conseguir que funcione, todavía havnt trabajado hacia fuera ...Adición de 1 hora para tiempo variable

tengo

$time = '10:09'; 

Quiero añadir una hora para que ...

Por lo tanto, he intentado:

$time = strtotime('+1 hour'); 

strtotime('+1 hour', $time); 

$time = date('H:i', strtotime('+1 hour')); 

Ninguna de las anteriores funcionó.

¿Pueden ayudarme?

Gracias.

+4

'$ tiempo = 10: 09;' no es la forma correcta de definir el tiempo – Robus

Respuesta

56

a mí me funcionó ..

$timestamp = strtotime('10:09') + 60*60; 

$time = date('H:i', $timestamp); 

echo $time;//11:09 

Explicación:

strtotime('10:09') crea una marca de tiempo numérica en cuestión de segundos, algo así como 1510450372. Simplemente agregue o elimine la cantidad de segundos que necesita y use date() para convertirlo a un formato legible para el ser humano.

$timestamp = strtotime('10:09') + 60*60; // 10:09 + 1 hour 
$timestamp = strtotime('10:09') + 60*60*2; // 10:09 + 2 hours 
$timestamp = strtotime('10:09') - 60*60; // 10:09 - 1 hour 

time() también crea una marca de tiempo numérica pero por ahora. Puedes usarlo de la misma manera.

$timestamp = time() + 60*60; // now + 1 hour 
+0

Gracias por esa pareja. Muy apreciado. –

+0

simple y funciona .. – Cleverson

+0

si tengo que hacer una decresión de una hora ('10: 09 ') - 60 * 60; Trabajará ?? – TarangP

14
$time = '10:09'; 
$timestamp = strtotime($time); 
$timestamp_one_hour_later = $timestamp + 3600; // 3600 sec. = 1 hour 

// Formats the timestamp to HH:MM => outputs 11:09. 
echo strftime('%H:%M', $timestamp_one_hour_later); 
// As crolpa suggested, you can also do 
// echo date('H:i', $timestamp_one_hour_later); 

comprobación manual de PHP para strtotime(), strftime() y date() para más detalles.

Por cierto, en el código inicial, es necesario agregar algunas citas de lo contrario obtendrá errores de sintaxis PHP:

$time = 10:09; // wrong syntax 
$time = '10:09'; // syntax OK 

$time = date(H:i, strtotime('+1 hour')); // wrong syntax 
$time = date('H:i', strtotime('+1 hour')); // syntax OK 
0

Cuidado con la adición de 3600 !! puede ser un problema en el cambio de día debido a que el formato de indicación de fecha y hora de Unix usa polilla antes del día.

p. Ej. 2012-03-02 23:33:33 se convertiría en 2014-01-13 13:00:00 agregando 3600 funciones de mktime y fecha de uso mejor que pueden manejar esto y cosas como agregar 25 horas, etc.

15

Puedes hacer como esto

echo date('Y-m-d H:i:s', strtotime('4 minute')); 
    echo date('Y-m-d H:i:s', strtotime('6 hour')); 
    echo date('Y-m-d H:i:s', strtotime('2 day')); 
-2

solución simple e inteligente:

date("H:i:s", time()+3600); 
6

probar esto se trabajó para mí.

$time="10:09"; 
$time = date('H:i', strtotime($time.'+1 hour')); 
echo $time; 
+0

¡Sorprendentemente sencillo gracias! $ timeFormat = date ("d/m/y H: i: s", strtotime ($ timeFormat. '+ 8 hours')); –

+0

En mi caso, quiero agregar 1.30 horas. Dar +1.30 no funcionó como se esperaba. ¿Hay alguna manera de hacer esto? – Pravin

+1

@Pravin '$ time = date ('H: i', strtotime ($ time. '+ 1 hour'. '+ 30 minutes'));' –

0

Puede probar este código

$ tiempo = '10: 09' ;

echo date ('H: i', strtotime ('+ 1 hour', strtotime ($ time)));

3

para este problema por favor siga el código abajo:

$time= '10:09'; 
$new_time=date('H:i',strtotime($time.'+ 1 hour')); 
echo $new_time;` 
// now output will be: 11:09 
+1

'strtotime ($ time. '+ 1 hour')' funciona muy bien - gracias –

+0

En mi caso, quiero agregar 1.30 horas. Dar +1.30 no funcionó como se esperaba. ¿Hay alguna manera de hacer esto? – Pravin

Cuestiones relacionadas