我在mysql数据库中有一个列是创建帖子的expriation时间....我有一个页面试图显示剩余的小时数和秒数,直到时间到达每个帖子的到期时间。例如,我在我的数据库中有这个:
2013-03-07 13:15:39
这显示此帖子何时到期....
现在我希望能够转到显示每个帖子的页面,然后显示剩余的时间(基于当前时间),直到每个帖子到期为止。
2013-03-07 12:15:39
到目前为止我一直在使用它:
$now = new DateTime(date("h:i:s",time()));
$exp = new DateTime($row['time_expires']);
$diff = $now->diff($exp);
printf('%d hours, %d minutes, %d seconds', $diff->h, $diff->i, $diff->s);
$ row从数据库中提取帖子
它一直在工作,但有时似乎有问题...我不知道为什么但它有时工作得很好但是当我再次检查它时间说15个小时到期时它应该说2小时< / p>
答案 0 :(得分:3)
h
中的{p> date()
是一个12小时制,会产生混淆,因为DateTime
会将其解释为24小时制。默认情况下,DateTime
对象将具有当前时间,因此只需使用:
$now = new DateTime();
$exp = new DateTime($row['time_expires']);
$diff = $now->diff($exp);
但Marc B建议直接在查询中执行此操作可能更好。