Як додати 24 години до часової позначки unix у php?


119

Я хотів би додати 24 години до часової позначки. Як я можу знайти номер часової позначки unix протягом 24 годин, щоб зараз можна додати її до часової позначки?

Я також хотів би знати, як додати 48 годин або кілька днів до поточної мітки часу.

Як мені найкраще зробити це?


"як додати 48 годин або декілька днів" - це літній час проблеми?
VolkerK

1
Я хотів би зазначити відповідь Альваро Г. Вікаріо. Додавання звичайних 24 годин може не бути тим, що ви хочете в кожному випадку.
Boldewyn

1
Yepp, саме тому я хотів дізнатися, чи zeckdude знає про dst і чи це його хвилює.
VolkerK

Відповіді:


301

Можливо, ви хочете додати один день, а не 24 години. Не всі дні мають 24 години через (серед інших обставин) літнього часу:

strtotime('+1 day', $timestamp);

6
Справа не настільки незрозуміла, оскільки всі інші коди попередніх питань порушуються наступної неділі вранці. +1
Болдевін

Мій код вважав, що у березня було 32 дні через цю справу, тому розумно мати на увазі DST, якщо ви не працюєте виключно в GMT.
знесення нанівець

86

Часова мітка Unix - це просто кількість секунд з першого січня 1970 року, тому для додавання 24 годин до часової позначки Unix ми просто додаємо кількість секунд за 24 години. (24 * 60 * 60)

time() + 24*60*60;

52
24 * 60 * 60 = 86400 (може врятувати когось пару секунд)
Ендрю


16

Часова позначка Unix знаходиться в секундах, тому просто додайте відповідну кількість секунд до часової позначки:

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

14

Ви також можете використовувати клас DateTime :

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

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

Додайте Р еріод 1 D ay:

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

Докладніші відомості див. У DateInterval .


0

Як ви вже говорили, якщо ви хочете зараз додати до часової позначки 24 години, тоді ви просто можете зробити:

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

Наведений вище код додасть 1 день або 24 години до вашої поточної мітки часу.

замість +1 dayвас можна взяти все, що завгодно , Як говорить посібник php, strtotime може проаналізувати будь-який англійський текстовий опис datetime в часовій позначці Unix .

приклади посібника наведені нижче:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.