PHP 如何用毫秒减去两个日期
PHP How to subtract two dates with milliseconds
例如:
$date1='2017-12-13 13:06:21.602';
$date2='2017-12-13 13:06:18.102';
$diff=$date1-$date2
echo $diff;
输出应该是 3.5
这是一个解决方案 5.2.2 < php 版本 < 7.1
<?php
$date1=\DateTime::createFromFormat('Y-m-d H:i:s.u','2017-12-13 13:06:21.602');
$date2=\DateTime::createFromFormat('Y-m-d H:i:s.u','2017-12-13 13:06:18.102');
// $di = $date1->diff($date2);
// var_dump( $di );
// seconds
$diffSeconds = $date1->getTimestamp() - $date2->getTimestamp();
// milli
$diffMilli = ($date1->format('u') - $date2->format('u')) / 1000000;
//result :
$diffWithMilli = $diffSeconds + $diffMilli;
var_dump($diffWithMilli);
注意:此解决方案自 PHP 7.1.0 添加参数 f
.
后有效
// your code goes here
$date1 = new DateTime('2017-12-13 13:06:21.602');
$date2 = new DateTime('2017-12-13 13:06:18.102');
$interval = $date1->diff($date2);
echo $interval->s+$interval->f;
// s = seconds, f = microseconds, as a fraction of a second
//var_dump($interval);
结果是3.5
自 4.3.0 以来的 PHP 版本比较:https://3v4l.org/VCI6P
例如:
$date1='2017-12-13 13:06:21.602';
$date2='2017-12-13 13:06:18.102';
$diff=$date1-$date2
echo $diff;
输出应该是 3.5
这是一个解决方案 5.2.2 < php 版本 < 7.1
<?php
$date1=\DateTime::createFromFormat('Y-m-d H:i:s.u','2017-12-13 13:06:21.602');
$date2=\DateTime::createFromFormat('Y-m-d H:i:s.u','2017-12-13 13:06:18.102');
// $di = $date1->diff($date2);
// var_dump( $di );
// seconds
$diffSeconds = $date1->getTimestamp() - $date2->getTimestamp();
// milli
$diffMilli = ($date1->format('u') - $date2->format('u')) / 1000000;
//result :
$diffWithMilli = $diffSeconds + $diffMilli;
var_dump($diffWithMilli);
注意:此解决方案自 PHP 7.1.0 添加参数 f
.
// your code goes here
$date1 = new DateTime('2017-12-13 13:06:21.602');
$date2 = new DateTime('2017-12-13 13:06:18.102');
$interval = $date1->diff($date2);
echo $interval->s+$interval->f;
// s = seconds, f = microseconds, as a fraction of a second
//var_dump($interval);
结果是3.5
自 4.3.0 以来的 PHP 版本比较:https://3v4l.org/VCI6P