列date
为datetime
格式
我需要显示小时在特定日期之前需要多少时间。
$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
任何帮助?
答案 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