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ć?


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

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;

53
24 * 60 * 60 = 86400 (może zaoszczędzić komuś kilka sekund)
Andrew,


16

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

$timeInFuture = time() + (60 * 60 * 24);

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 .


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

0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.