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

119

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

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

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

zeckdude
источник
«как добавить 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;
Yacoby
источник
53
24 * 60 * 60 = 86400 (может спасти кого-нибудь на пару секунд)
Эндрю
20

Добавьте 24*3600количество секунд в 24 часа

Суфиан Хассу
источник
16

Метка времени Unix указывается в секундах, поэтому просто добавьте к метке времени соответствующее количество секунд:

$timeInFuture = time() + (60 * 60 * 24);
reko_t
источник
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 для более подробной информации.

SeanJA
источник
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";
?>
Haritsinh Gohil
источник
0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
SARADA PRASAD BISWAL
источник