以毫秒获取当前时间戳

Get current timestamp with milliseconds

我想在 PHP 中获取以毫秒为单位的当前时间戳,如下所示,在 JavaScript 中我使用 Date.now()

1436030635348

我试过如下:

$time = str_replace(".","",microtime(true)); 

但有时它无法正常工作。就像它少打印一两个数字。

它可以打印更少的数字,因为它是一个浮点值。所以如果你得到 1234.0005,那个 `.0005 实际上意味着 500 微秒。 5 之后的零丢失,因为它仍然是一个未格式化的浮点值。

函数microtime是基于系统调用gettimeofday(),它也不精确到微秒。通常它精确到 10 微秒。另见 Linux - Is gettimeofday() guaranteed to be of microsecond resolution

-edit- 我看到您问题中的规格已从微秒更改为毫秒。

要获得作为整数的浮点值,您可以乘以一个值。浮点值代表秒。乘以 1000 得到毫秒或乘以 1,000,000 得到微秒。由于规格(现在)表示毫秒,因此您应该乘以 1000。10k 将为您提供 1/10ms = 100μs 的精度。毫秒是千分之一秒。微秒是百万分之一秒。

长话短说,要获取整数毫秒的时间,请使用:

$milliseconds = intval(microtime(true) * 1000);

注意:默认情况下将时间作为字符串或浮点数获取是有原因的。原因是在 32 位系统上,PHP 的整数也是 32 位的,不足以包含包括毫秒和微秒的时间戳。所以这个解决方案只能在 64 位系统上运行良好。

我认为您只需要使用此函数即可在 PHP:

中获取微秒的时间戳
int microtime ( void )

按如下所示使用它 link,下面的代码片段向您展示了我如何根据对您的问题有所帮助而对其进行了更改:

<?php

function microtime_microseconds()
{
     list($usec, $sec) = explode(" ", microtime());
     return round(($usec * 1000) + $sec);
}

$micro_time = microtime_microseconds();

echo $micro_time;

?>

以及有关 microtime() PHP 功能的参考,请访问并阅读此 PHP manual page

$timeStampData = microtime();
list($msec, $sec) = explode(' ', $timeStampData);
$msec = round($msec * 1000);

$result = $sec . $msec;

像这样

但请注意,js date.now() return 时间以毫秒为单位,而不是微秒