Как добавить 24 часа к отметке времени unix в php?


119

Сейчас я хотел бы добавить к отметке времени 24 часа. Как мне найти номер отметки времени unix за 24 часа, чтобы я мог добавить его к отметке времени прямо сейчас?

Я также хотел бы знать, как добавить 48 часов или несколько дней к текущей метке времени.

Как я могу сделать это наилучшим образом?


«как добавить 48 часов или несколько дней» - проблема перехода на летнее время?
VolkerK

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

1
Йепп, вот почему я хотел знать, знает ли zeckdude о dst и беспокоит ли это его.
VolkerK

Ответы:


301

Вероятно, вы захотите добавить один день, а не 24 часа. Не все дни имеют 24 часа из-за (среди прочего) летнего времени:

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

6
Случай не такой уж непонятный, поскольку весь остальной код предыдущих вопросов ломается в следующее воскресенье утром. +1
Boldewyn

В моем коде из-за этого случая в марте было 32 дня, поэтому разумно помнить о летнем времени, если вы не работаете исключительно в GMT.
Обнуляемость

86

Временная метка Unix - это просто количество секунд с первого января 1970 года, поэтому, чтобы добавить 24 часа к временной метке Unix, мы просто добавляем количество секунд в 24 часа. (24 * 60 * 60)

time() + 24*60*60;

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

Добавить P eriod из 1 D ау:

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

Смотрите DateInterval для более подробной информации.


0

Как вы сказали, если вы хотите добавить 24 часа к отметке времени прямо сейчас, вы можете просто сделать:

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

Приведенный выше код добавит 1 день или 24 часа к вашей текущей метке времени.

вместо этого +1 dayвы можете взять все, что захотите. Как сказано в руководстве по php, strtotime может анализировать любое текстовое описание даты и времени на английском языке в метку времени 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.