我有两个时间戳:
$date1 = new DateTime("2017-08-02T08:00:00.000Z");
$date2 = new DateTime("2017-10-02T17:00:00.000Z");
我需要知道这两者之间的时间是在08:00到17:00之间。
它应该返回24小时,3个完整的工作日。
答案 0 :(得分:1)
<?php
$date1 = new DateTime("2017-08-02T10:19:55.022Z");
$date2 = new DateTime("2017-10-02T10:19:55.022Z");
$interval = $date1 ->diff($date2 );
echo $interval->format('%h')." Hours ".$interval->format('%i')." Minutes";
?>
答案 1 :(得分:0)
获取这两个日期的间隔;
$date1 = new DateTime("2017-08-02T10:19:55.022Z");
$date2 = new DateTime("2017-10-02T10:19:55.022Z");
$diff = $date1 ->diff($date2);
$diff
是DateInterval的一个实例,如下所示:
DateInterval {#727
+"y": 0,
+"m": 2,
+"d": 0,
+"h": 0,
+"i": 0,
+"s": 0,
+"weekday": 0,
+"weekday_behavior": 0,
+"first_last_day_of": 0,
+"invert": 0,
+"days": 61,
+"special_type": 0,
+"special_amount": 0,
+"have_weekday_relative": 0,
+"have_special_relative": 0,
}
因此,$diff->d
是日间隔的一部分$diff->h
是小时间隔的一部分。您可以使用这些属性来获得所需的内容。
DateInterval类的更多细节,请查看此官方文档: http://php.net/manual/en/class.dateinterval.php
答案 2 :(得分:0)
<?php
$date1 = new DateTime("2017-08-02T10:19:55.022Z");
$date2 = new DateTime("2017-10-02T10:19:55.022Z");
$interval = $date1->getTimestamp() -$date2->getTimestamp();
echo abs($interval/(60*60));
?>