it-swarm-pt.tech

Adicionando 1 hora a variável de tempo

Essa coisa simples desperdiçou horas do meu tempo tentando fazer funcionar, ainda não deu certo ...

eu tenho 

$time = '10:09';

Eu quero adicionar uma hora para isso ...

Então, eu tentei:

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

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

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

Nenhum dos acima funcionou.

Vocês podem me ajudar?

Obrigado.

35
user849137

Trabalhou para mim ..

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

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

echo $time;//11:09

Explicação:

strtotime('10:09') cria um timestamp numérico em segundos, algo como 1510450372. Simplesmente adicione ou remova a quantidade de segundos que você precisa e use date() para convertê-lo de volta em um formato legível por humanos.

$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() também cria um timestamp numérico, mas por enquanto. Você pode usá-lo da mesma maneira.

$timestamp = time() + 60*60; // now + 1 hour
68
paulcol.

Você pode fazer assim

    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'));
18
Azam Alvi
$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);

Verifique o manual PHP para strtotime () , strftime () e date () para detalhes.

BTW, no seu código inicial, você precisa adicionar algumas citações caso contrário você obterá erros de sintaxe 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
14
Frosty Z

tente isso é trabalhado para mim.

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

para este problema, por favor siga o código abaixo:

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

Atualização 2019

É estranho que ninguém tenha sugerido OOP:

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT3600S'));//add 3600s

OR

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT60M'));//add 60 min

OR

$date = new \DateTime(); //now
$date->add(new \DateInterval('P1H'));//add 1 hour

Extraia em string com format:

var_dump($date->format('Y-m-d H:i:s'));

Espero que ajude

1
Learner

Você pode usar:

$time = strtotime("10:09") + 3600;
echo date('H:i', $time);

Ou date_add: http://www.php.net/manual/en/datetime.add.php

1
rcdmk

Solução simples e inteligente: 

date("H:i:s", time()+3600);
0
Ladislav Němeček

Você pode tentar este código:

$time = '10:09';

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

Cuidado com a adição de 3600 !! pode ser um problema na mudança do dia porque o formato unst timestamp usa mariposa antes do dia.

por exemplo. 2012-03-02 23:33:33 se tornaria 2014-01-13 13:00:00 adicionando 3600 melhores funções de mktime e data que podem manipular isso e coisas como adicionar 25 horas etc.

0
user3298040