Php 剩余时间为两次

Php 剩余时间为两次,php,mysql,time,Php,Mysql,Time,我在数据库中有时间数据,我在数据库中用time()函数(值1551866538)记录时间,我想把php剩余时间写为1天24小时。我尝试了date\u diff()函数,但每次都出现错误,谢谢您的帮助 $mysqltime = $data->registerdate; // 1551866538 $now = time(); $remainingtime = $now - $mysqltime; // I want show as hour 您还可以使用DateTime类,如下所示: $

我在数据库中有
时间数据
,我在数据库中用
time()
函数(值1551866538)记录时间,我想把php剩余时间写为1天24小时。我尝试了
date\u diff()
函数,但每次都出现错误,谢谢您的帮助

$mysqltime = $data->registerdate; // 1551866538
$now = time();

$remainingtime = $now - $mysqltime; // I want show as hour

您还可以使用
DateTime
类,如下所示:

$today      = new DateTime('now');
$tomorrow   = new DateTime(date('Y-m-d H:i:s', '1551866538'));
$difference = $today->diff($tomorrow);

echo $difference->format('%h hours %i minutes remaining');
输出

1 hours 42 minutes remaining

你的密码在哪里?到目前为止,您尝试了什么?我添加了我的代码。您只是尝试将秒的格式设置为小时:分钟吗?如果差异超过24小时,则您希望显示天?我希望这样显示,“记忆时间4小时21分钟”。当完成剩余时间“时间到期”时,这将不显示分钟。它将舍入到最近的小时。我无法理解$datediff变量。错误代码echo$hours=round($remainingtime/(60*60));这个想法或多或少是正确的,但如果差异很小,它将显示0年,0个月…您可以放置if条件来检查0年/月。我没有格式化时间,我的数据是数据库中的1551866538,我知道我必须转换此数据,但我没有,而且您的代码很长,这一定很短。谢谢Amit,最佳答案,我运行这段代码,完全符合我的要求。我现在已经意识到,它的估计时间,请解释如何显示24小时后的剩余时间。好的,我解决了这个问题。我这样替换了这个代码$明天=新的日期时间(日期('Y-m-d H:i:s','1551866538'+60*60*24));
2 years, 3 months, 21 days, 11 hours, 59 minutes, 1 seconds
$today      = new DateTime('now');
$tomorrow   = new DateTime(date('Y-m-d H:i:s', '1551866538'));
$difference = $today->diff($tomorrow);

echo $difference->format('%h hours %i minutes remaining');
1 hours 42 minutes remaining