Получите метку времени Unix в миллисекундах с помощью Perl - PullRequest
0 голосов
/ 27 июня 2018

Я понимаю, что мы можем использовать функцию time(), чтобы получить seconds, прошедшее с эпохи. Как мне получить milliseconds хотя?

Я выполняю взаимодействие с системой на основе JavaScript, где мы имеем дело с milliseconds.

Спасибо! Кстати, я собираюсь оценить этот скрипт в контексте nginx.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы можете сделать свой собственный time, который возвращает число с плавающей запятой, например:

use Time::HiRes;
sub time_fp { sprintf"%d.%06d",Time::HiRes::gettimeofday }

Или просто переопределить ядро ​​time следующим образом:

use Time::HiRes qw(time);
print time(), "\n";             # 1530190722.02601 for example

Проблема с последним заключается в том, что в нем нет места для 6 десятичных знаков (вы упоминали миллисекунды) после этого 10-значного числа в стандартном числе с плавающей запятой (может зависеть от версии Perl и настроек компиляции). Запустите perl -le 'print 1530190907.849523', чтобы понять, что я имею в виду. Последнее десятичное число 3 потеряно.

0 голосов
/ 27 июня 2018
...