Como faço para adicionar 24 horas a um timestamp unix no php?

119

Eu gostaria de adicionar 24 horas ao carimbo de data / hora por enquanto. Como encontro o número do carimbo de data / hora unix de 24 horas para que possa adicioná-lo ao carimbo de data / hora agora?

Também gostaria de saber como adicionar 48 horas ou vários dias ao carimbo de data / hora atual.

Como posso fazer isso da melhor maneira?

zeckdude
fonte
"como adicionar 48 horas ou vários dias" - o horário de verão é um problema?
VolkerK
1
Gostaria de destacar a resposta de Álvaro G. Vicario. Adicionar 24 horas simples pode não ser o que você deseja em todos os casos.
Boldewyn,
1
Sim, é por isso que queria saber se zeckdude conhece dst e se isso o preocupa.
VolkerK

Respostas:

301

Você provavelmente deseja adicionar um dia em vez de 24 horas. Nem todos os dias têm 24 horas devido (entre outras circunstâncias) ao horário de verão:

strtotime('+1 day', $timestamp);
Álvaro González
fonte
6
O caso não é tão obscuro, já que todos os outros códigos das perguntas anteriores quebram na manhã do próximo domingo. +1
Boldewyn,
Meu código pensava que março tinha 32 dias por causa desse caso, portanto, é aconselhável manter o horário de verão em mente, a menos que você esteja operando apenas em GMT.
nulidade
86

Um carimbo de data / hora Unix é simplesmente o número de segundos desde o primeiro de janeiro de 1970, então, para adicionar 24 horas a um carimbo de data / hora Unix, apenas adicionamos o número de segundos em 24 horas. (24 * 60 * 60)

time() + 24*60*60;
Yacoby
fonte
52
24 * 60 * 60 = 86400 (pode salvar alguém alguns segundos)
Andrew
20

Adicione 24*3600qual é o número de segundos em 24 horas

Soufiane Hassou
fonte
16

O carimbo de data / hora Unix está em segundos, portanto, basta adicionar o número correspondente de segundos ao carimbo de data / hora:

$timeInFuture = time() + (60 * 60 * 24);
reko_t
fonte
14

Você também pode usar a classe DateTime :

$timestamp = mktime(15, 30, 00, 3, 28, 2015);

$d = new DateTime();
$d->setTimestamp($timestamp);

Adicionar uma P eríodo de um D ay:

$d->add(new DateInterval('P1D'));
echo $d->format('c');

Veja DateInterval para mais detalhes.

SeanJA
fonte
0

Como você disse, se quiser adicionar 24 horas ao carimbo de data / hora agora, basta fazer:

 <?php echo strtotime('+1 day'); ?>

O código acima adicionará 1 dia ou 24 horas ao seu carimbo de data / hora atual.

no lugar de +1 dayvocê pode levar o que quiser , Como o manual do php diz que strtotime pode analisar qualquer descrição de data e hora textual em inglês em um carimbo de data / hora Unix .

exemplos do manual são os seguintes:

<?php
     echo strtotime("now"), "\n";
     echo strtotime("10 September 2000"), "\n";
     echo strtotime("+1 day"), "\n";
     echo strtotime("+1 week"), "\n";
     echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
     echo strtotime("next Thursday"), "\n";
     echo strtotime("last Monday"), "\n";
?>
Haritsinh Gohil
fonte
0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
SARADA PRASAD BISWAL
fonte