Jak dodać 24 godziny do uniksowego znacznika czasu w php?

119

Chciałbym na razie dodać 24 godziny do znacznika czasu. Jak znaleźć numer uniksowego znacznika czasu z 24 godzin, aby móc teraz dodać go do znacznika czasu?

Chciałbym również wiedzieć, jak dodać 48 godzin lub wiele dni do aktualnego znacznika czasu.

Jak mogę najlepiej to zrobić?

zeckdude
źródło
„jak dodać 48 godzin czy wiele dni” - czy czas letni jest problemem?
VolkerK
1
Chciałbym zwrócić uwagę na odpowiedź Álvaro G. Vicario. Dodanie zwykłych 24 godzin może nie być tym, czego chcesz w każdym przypadku.
Boldewyn
1
Tak, dlatego chciałem wiedzieć, czy Zeckdude jest świadomy czasu i czy go to niepokoi.
VolkerK

Odpowiedzi:

301

Prawdopodobnie chcesz dodać jeden dzień zamiast 24 godzin. Nie wszystkie dni mają 24 godziny ze względu (między innymi) na czas letni:

strtotime('+1 day', $timestamp);
Álvaro González
źródło
6
Sprawa nie jest tak niejasna, ponieważ wszystkie inne kodeksy wcześniejszych pytań pękają w następny niedzielny poranek. +1
Boldewyn
Mój kod zakładał, że marzec miał 32 dni z powodu tego przypadku, więc rozsądnie jest pamiętać o czasie letnim, chyba że działasz wyłącznie w GMT.
nieważność
86

Uniksowy znacznik czasu to po prostu liczba sekund od pierwszego stycznia 1970 roku, więc aby dodać 24 godziny do uniksowego znacznika czasu, po prostu dodajemy liczbę sekund w 24 godzinach. (24 * 60 * 60)

time() + 24*60*60;
Yacoby
źródło
53
24 * 60 * 60 = 86400 (może zaoszczędzić komuś kilka sekund)
Andrew,
20

Dodaj 24*3600liczbę sekund w ciągu 24 godzin

Soufiane Hassou
źródło
16

Znacznik czasu systemu Unix jest w sekundach, więc po prostu dodaj odpowiednią liczbę sekund do znacznika czasu:

$timeInFuture = time() + (60 * 60 * 24);
reko_t
źródło
14

Możesz również użyć klasy DateTime :

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

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

Dodaj P eriod z 1 D ay:

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

Aby uzyskać więcej informacji, zobacz DateInterval .

SeanJA
źródło
0

Jak powiedziałeś, jeśli chcesz teraz dodać 24 godziny do znacznika czasu, możesz po prostu zrobić:

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

Powyższy kod doda 1 dzień lub 24 godziny do Twojej aktualnej sygnatury czasowej.

zamiast +1 dayciebie możesz wziąć cokolwiek zechcesz , jak mówi podręcznik php , strtotime może parsować dowolny angielski tekstowy opis daty i godziny do uniksowego znacznika czasu .

przykłady z instrukcji są następujące:

<?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
źródło
0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
SARADA PRASAD BISWAL
źródło