php获取的时间戳是多少位,PHP获取13位时间戳

前言

任何语言都有自己不同的方法来获取时间戳,如JAVA直接一个方法就可以获取到13位的时间戳,而本方讨论的是PHP如何获取到13位时间戳,PHP有方法可以直接获取到10位的时间戳time(),而13位时间戳是本文需要讨论的。

遇到的问题

最近在用PHP写代码中需要生成一个13位的时间戳,用到的方法是:

错误的方法

/**获取13位时间戳字符串

* @return array|mixed|string

*/

function get_total_millisecond()

{

$time = explode(" ", microtime());

$time = $time [1] . ($time [0] * 1000);

$time2 = explode(".", $time);

$time = $time2 [0];

return $time;

}

上面这个方法有一个问题,microtime()生成字符串为"msec sec"格式,当msec生成格式为0.0123456这种格式的时候,就会少一位,只有12位时间戳(前10位加12这两位),是不符合要求的。

正确的方法

方法一:

function get_total_millisecond()

{

$time = explode(" ", microtime());

$time = ($time [1] + $time [0]) * 1000;

$time = round($time) . '';

return $time;

}

方法二:

function get_total_millisecond()

{

list($t1, $t2) = explode(' ', microtime());

return sprintf('%u', (floatval($t1) + floatval($t2)) * 1000);

// return (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);

}