Php DateTime,多少小时过去了

Php DateTime,多少小时过去了,php,datetime,Php,Datetime,我有两个时间戳: $date1 = new DateTime("2017-08-02T08:00:00.000Z"); $date2 = new DateTime("2017-10-02T17:00:00.000Z"); 我想知道从08:00到17:00这两个时间间隔是多少 它应该24小时返回,3个完整工作日。 <?php $date1 = new DateTime("2017-08-02T10:19:55.022Z"); $date2 = new DateTime("2017-10-0

我有两个时间戳:

$date1 = new DateTime("2017-08-02T08:00:00.000Z");
$date2 = new DateTime("2017-10-02T17:00:00.000Z");
我想知道从08:00到17:00这两个时间间隔是多少

它应该24小时返回,3个完整工作日。


<?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";
?>

获取这两个日期的间隔

$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
是小时间隔的一部分。您可以使用这些属性来获得所需的内容

有关类日期间隔的更多详细信息,请查阅以下官方文档:



StackOverflow希望您在寻求帮助之前能够这样做,而这样做的一部分是为了解决类似的问题。只需几秒钟就能找到你问题的确切答案——可能比写下来的时间要少。以后先搜索以节省您自己的时间:)有关更多信息,请参阅有关的帮助文章,并以:)ty作为答案,但此时它返回0,应该是大约19小时:/i我正在尝试计算这两个日期之间的工作小时数。虽然这可能会回答问题,请添加一个简短的说明,说明您的命令的作用以及它解决初始问题的原因。
<?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));
?>