如何在php中的unix时间戳中添加24小时?


119

我现在想在时间戳上增加24小时。如何找到24小时的Unix时间戳号,以便现在可以将其添加到时间戳中?

我还想知道如何将48小时或多天添加到当前时间戳。

我如何才能最好地做到这一点?


“如何增加48小时或多天”-夏时制是否成问题?
VolkerK 2010年

1
我想指出ÁlvaroG. Vicario的回答。在任何情况下都可能不希望只增加24小时。
Boldewyn

1
是的,这就是为什么我想知道zeckdude是否了解dst,以及他是否对此感到担忧。
VolkerK 2010年

Answers:


301

您可能需要增加一天而不是24小时。并非由于所有其他时间,夏令时都会导致24小时:

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

6
情况并非如此晦涩,因为先前问题的所有其他代码都在下周日的早晨中断。+1
Boldewyn

我的代码认为,由于这种情况,March有32天的时间,因此明智的做法是记住DST,除非您仅在GMT中运行。
nullability 2013年

85

Unix时间戳只是从1970年1月1日以来的秒数,因此要将Unix时间戳增加24小时,我们只需添加24小时的秒数。(24 * 60 * 60)

time() + 24*60*60;

51
24 * 60 * 60 = 86400(可能会帮助某人节省几秒钟)
Andrew


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 AY:

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

0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.