使用perl获取unix时间戳(以毫秒为单位)

Ste*_*son 1 perl nginx unix-timestamp

我知道我们可以使用该time()函数来获取seconds自纪元以来经过的时间.我如何得到这个milliseconds

我正在与我们处理的基于JavaScript的系统进行互操作milliseconds.

谢谢!顺便说一句,我将在nginx的上下文中评估这个脚本.

Kje*_* S. 8

您可以自己制作time,返回一个浮点数,如下所示:

use Time::HiRes;
sub time_fp { sprintf"%d.%06d",Time::HiRes::gettimeofday }
Run Code Online (Sandbox Code Playgroud)

或者time像这样覆盖核心:

use Time::HiRes qw(time);
print time(), "\n";             # 1530190722.02601 for example
Run Code Online (Sandbox Code Playgroud)

但后者的一个问题是,在标准浮点数中的 10 位数字(可能取决于 Perl 版本和编译设置)之后,没有 6 位小数的空间(如果你想要微秒而不是毫秒)。跑来perl -le 'print 1530190907.849523'看看我的意思。最后一位小数 3 丢失。

  • 不粗鲁的要点。 (2认同)