我有该人收到任务的时间(1555133436),我需要显示他可以再次获得任务的时间(24小时)
我试图这样做:
$date='1555133436';
$diff=date('H:i:s', 86400- (time() - $date));
echo $diff;
作为回应,我得到一些15:24:41
答案 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
原始答案(寻找可以再次访问数据的时间)
您可以将时间戳转换为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;