time()
是以秒为单位的--有毫秒吗?
发布于 2010-09-07 15:50:06
使用microtime
。此函数返回由空格分隔的字符串。第一部分是秒的小数部分,第二部分是整数部分。传入true
以获取一个数字:
var_dump(microtime()); // string(21) "0.89115400 1283846202"
var_dump(microtime(true)); // float(1283846202.89)
如果您使用microtime(true)
,请注意精度损失。
还有一个将微秒部分作为整数返回的gettimeofday
。
var_dump(gettimeofday());
/*
array(4) {
["sec"]=>
int(1283846202)
["usec"]=>
int(891199)
["minuteswest"]=>
int(-60)
["dsttime"]=>
int(1)
}
*/
发布于 2010-09-07 16:20:25
正如其他人所说的,您可以使用microtime()
来获取时间戳的毫秒精度。
从您的评论中,您似乎希望它是一个高精度的UNIX时间戳。类似于.NET世界中的DateTime.Now.Ticks
。
您可以使用以下函数来执行此操作:
function millitime() {
$microtime = microtime();
$comps = explode(' ', $microtime);
// Note: Using a string here to prevent loss of precision
// in case of "overflow" (PHP converts it to a double)
return sprintf('%d%03d', $comps[1], $comps[0] * 1000);
}
发布于 2010-09-07 18:23:37
在PHP5中使用microtime(true)
,或在PHP4中进行以下修改:
array_sum(explode(' ', microtime()));
编写该代码的一种可移植方法是:
function getMicrotime()
{
if (version_compare(PHP_VERSION, '5.0.0', '<'))
{
return array_sum(explode(' ', microtime()));
}
return microtime(true);
}
https://stackoverflow.com/questions/3656713
复制相似问题