从当前日期时间减去日期时间以获得计时器

时间:2013-03-07 21:11:39

标签: php mysql datetime

我在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>

1 个答案:

答案 0 :(得分:3)

h中的{p> date()是一个12小时制,会产生混淆,因为DateTime会将其解释为24小时制。默认情况下,DateTime对象将具有当前时间,因此只需使用:

  $now = new DateTime();
  $exp = new DateTime($row['time_expires']);
  $diff = $now->diff($exp);

但Marc B建议直接在查询中执行此操作可能更好。