如何计算包括当天在内的小时差异

时间:2017-10-05 03:44:32

标签: php mysql datetime

datedatetime格式 我需要显示小时在特定日期之前需要多少时间。

$st = $db->query("select ev, date from event where ev = 'ng'");
$row = $st->fetch();
$d1 = new DateTime($row['date']);
$d2 = new DateTime();
$diff = $d1->diff($d2);
$diff = $diff->days * 24; // result: 2088

这样可行,但不计算当天的小时数。我试过了:

$diff = $diff->hours;

并得到通知:

Undefined property: DateInterval::$hours

任何帮助?

2 个答案:

答案 0 :(得分:1)

一旦你有了diff对象,只需格式化它就可以获得时间

$d1 = new DateTime($row['date']);
$d2 = new DateTime();
$diff = $d1->diff($d2);

获取小时数

echo ($diff->d * 24) + $diff->h

答案 1 :(得分:1)

由于$diff->days会返回剩余的天数,您可以按24小时计算小时数,然后您只需添加当天剩余的小时数,这基本上就是您的工作,但只需添加剩余的小时数小时

$st = $db->query("select ev, date from event where ev = 'ng'");
$row = $st->fetch();
$d1 = new DateTime($row['date']);
$d2 = new DateTime();
$diff = $d1->diff($d2);
// (days * 24) = hours + remaining hours
$hours = ($diff->days * 24) + $diff->h;

示例: 1天5小时= 29 https://3v4l.org/KDS9r