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?


"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);

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;

52
24 * 60 * 60 = 86400 (pode salvar alguém alguns segundos)
Andrew


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);

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.


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";
?>

0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.