前言
任何语言都有自己不同的方法来获取时间戳,如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);
}