首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中获取以毫秒为单位的当前时间?

如何在PHP中获取以毫秒为单位的当前时间?
EN

Stack Overflow用户
提问于 2010-09-07 15:48:12
回答 9查看 463.5K关注 0票数 370

time()是以秒为单位的--有毫秒吗?

EN

回答 9

Stack Overflow用户

发布于 2010-09-07 15:50:06

使用microtime。此函数返回由空格分隔的字符串。第一部分是秒的小数部分,第二部分是整数部分。传入true以获取一个数字:

代码语言:javascript
复制
var_dump(microtime());       // string(21) "0.89115400 1283846202"
var_dump(microtime(true));   // float(1283846202.89)

如果您使用microtime(true),请注意精度损失。

还有一个将微秒部分作为整数返回的gettimeofday

代码语言:javascript
复制
var_dump(gettimeofday());
/*
array(4) {
  ["sec"]=>
  int(1283846202)
  ["usec"]=>
  int(891199)
  ["minuteswest"]=>
  int(-60)
  ["dsttime"]=>
  int(1)
}
*/
票数 102
EN

Stack Overflow用户

发布于 2010-09-07 16:20:25

正如其他人所说的,您可以使用microtime()来获取时间戳的毫秒精度。

从您的评论中,您似乎希望它是一个高精度的UNIX时间戳。类似于.NET世界中的DateTime.Now.Ticks

您可以使用以下函数来执行此操作:

代码语言:javascript
复制
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);
}
票数 48
EN

Stack Overflow用户

发布于 2010-09-07 18:23:37

在PHP5中使用microtime(true),或在PHP4中进行以下修改:

代码语言:javascript
复制
array_sum(explode(' ', microtime()));

编写该代码的一种可移植方法是:

代码语言:javascript
复制
function getMicrotime()
{
    if (version_compare(PHP_VERSION, '5.0.0', '<'))
    {
        return array_sum(explode(' ', microtime()));
    }

    return microtime(true);
}
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3656713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档