获取以毫秒为单位的当前时间戳


Get current timestamp with milliseconds

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

1436030635348

我尝试了以下内容:

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

但有时它不能正常工作。就像它少打印一两个数字一样。

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

函数microtime基于系统调用gettimeofday(),该调用也不精确到微秒。通常精确到10微秒。另请参阅Linux-是否保证gettimeofday((的分辨率为微秒。

-编辑-我看到你问题中的规格从微秒变为毫秒。

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

长话短说,要获得以整数毫秒为单位的时间,请使用以下方法:

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

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

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

像这样的

但请注意,js-date.now((返回的时间以毫秒为单位,而不是MICROseconds

我认为您只需要使用此函数在PHP:中获得一个具有微秒的时间戳

int microtime ( void )

使用它,如下面的链接所示,下面的代码片段向你展示了我是如何根据对你的问题有帮助而修改它的:

<?php
function microtime_microseconds()
{
     list($usec, $sec) = explode(" ", microtime());
     return round(($usec * 1000) + $sec);
}
$micro_time = microtime_microseconds();
echo $micro_time;
?>

关于microtime() PHP函数的参考,请访问并阅读本PHP手册页。