PHP如何用毫秒减去两个日期[重复]

This question already has an answer here:

For example:

$date1='2017-12-13 13:06:21.602';
$date2='2017-12-13 13:06:18.102';
$diff=$date1-$date2
echo $diff;

output should be 3.5

</div>

Here is a solution 5.2.2 < php version < 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);

Use The DateInterval class

Note: This solution works since PHP 7.1.0 when was added parameter 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);

The result is 3.5

https://ideone.com/kf1PQQ

For PHP version comparison since 4.3.0: https://3v4l.org/VCI6P