Time()是以秒为单位的——有以毫秒为单位的吗?


当前回答

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

var_dump(microtime());       // string(21) "0.89115400 1283846202"
var_dump(microtime(true));   // float(1283846202.89)

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

还有gettimeofday,它以整数形式返回微秒部分。

var_dump(gettimeofday());
/*
array(4) {
  ["sec"]=>
  int(1283846202)
  ["usec"]=>
  int(891199)
  ["minuteswest"]=>
  int(-60)
  ["dsttime"]=>
  int(1)
}
*/

其他回答

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

var_dump(microtime());       // string(21) "0.89115400 1283846202"
var_dump(microtime(true));   // float(1283846202.89)

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

还有gettimeofday,它以整数形式返回微秒部分。

var_dump(gettimeofday());
/*
array(4) {
  ["sec"]=>
  int(1283846202)
  ["usec"]=>
  int(891199)
  ["minuteswest"]=>
  int(-60)
  ["dsttime"]=>
  int(1)
}
*/

用这个: 函数get_millis () { List ($usec, $sec) =爆炸(' ',microtime()); 返回(int) ((int) $sec * 1000 + ((float) $usec * 1000)); }

Bye

试试这个:

public function getTimeToMicroseconds() {
    $t = microtime(true);
    $micro = sprintf("%06d", ($t - floor($t)) * 1000000);
    $d = new DateTime(date('Y-m-d H:i:s.' . $micro, $t));

    return $d->format("Y-m-d H:i:s.u"); 
}

这是我的实现,应该工作在32位以及。

function mstime(){
    $mstime = explode(' ',microtime());
    return $mstime[1].''.(int)($mstime[0]*1000);
}

echo date('Y-m-d H:i:s.')。gettimeofday()(“购买”);

输出:

2016-11-19 15:12:34.346351