Я пытаюсь получить разницу во времени в миллисекундах.Странное поведение PHP DateTime Класс
$_SESSION['startTime'] = time();
$to_time = time();
//I call the code from here after a delay, say 4 seconds
$from_time = $_SESSION['startTime'];
$d1 = new DateTime($from_time);
$d2 = new DateTime($to_time);
print_r($d1->diff($d2));
распечатать результат через 4 секунды, и результат примерно так:
DateInterval Object
(
[y] => 4 //---- Problem, this value should be +
[m] => 0 // |
[d] => 0 // |
[h] => 0 // |
[i] => 0 // |
[s] => 0 //<-here-----------------------------+
[invert] => 1
[days] => 1461
)
[s] должно быть 4. почему 4 находится в секции года? Что я делаю неправильно?
ОБНОВЛЕНИЕ - решаемые
$to_time = (microtime(true));
$from_time = ($_SESSION['startTime']);
$diff = $to_time - $from_time;
print $diff;
Печать
3.xxxxxx
Если у вас уже есть 2 UNIX метки времени, почему бы не просто вычесть их напрямую? Кроме того, если вы ищете точность ms, вам нужно microtime(). – Corbin