Unix时间戳记第二天

时间:2019-04-13 06:06:58

标签: php time

我有该人收到任务的时间(1555133436),我需要显示他可以再次获得任务的时间(24小时)

我试图这样做:

$date='1555133436';

$diff=date('H:i:s', 86400- (time() - $date));
echo $diff;

作为回应,我得到一些15:24:41

1 个答案:

答案 0 :(得分:2)

更新

从您的评论看来,您想找出用户必须等待多长时间才能再次看到该作业(他们第一次看到该作业后24小时)。您可以使用以下代码实现此目的,该代码将创建一个DateInterval对象,该对象表示该差异,然后输出剩余的小时和分钟:

date_default_timezone_set('UTC');
$date='1555133436';
$next_date = new DateTime("@$date");
// find out when they can next access the data
$next_date->modify('+1 day');
// now find out how long they must wait
$wait = $next_date->diff(new DateTime(), true);
echo $wait->format("You must wait %h hours and %i minutes to access the data again\n");

输出:

You must wait 21 hours and 38 minutes to access the data again

Demo on 3v4l.org

原始答案(寻找可以再次访问数据的时间)

您可以将时间戳转换为DateTime对象,然后将值增加1天:

$date='1555133436';
$next_date = (new DateTime("@$date"))->modify('+1 day');
echo $next_date->format('Y-m-d H:i:s');

输出:

2019-04-14 05:30:36

如果您也希望将结果作为时间戳记,则只需使用

echo $next_date->format('U');

输出:

1555219836

请注意,您还可以通过在原始时间戳上添加86400来获得该结果,尽管您应注意,该方法在夏令时开始或结束的日子里都无效。

echo $date + 86400;

Demo on 3v4l.org