我在 mysql 数据库中有一列是创建帖子的到期时间....我有一个页面试图显示在时间到达每个帖子的到期时间之前还剩下多少小时和秒。例如我的数据库中有这个:
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 小时
最佳答案
date()
中的
h
是12 小时制,这会造成混淆,因为DateTime
会将其解释为24 小时制一。默认情况下,DateTime
对象将具有当前时间,因此只需使用:
$now = new DateTime();
$exp = new DateTime($row['time_expires']);
$diff = $now->diff($exp);
但 Marc B 的直接在查询中执行此操作的建议可能更好。
关于php - 从当前日期时间减去日期时间以获得计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15281833/