通常使用date(‘mdYHis’) 来格式化一个日期字串,例如20190101154802,但是有的时候我们可能需要更为准确的时间,比如带上毫秒(年份用Y标记,毫秒使用v标记,微秒用u标记)。但是,遗憾的是date函数只接受integer 参数,因此date函数中使用u格式化微秒的时候总是返回000000 。
解决方案 一
使用
$d = new \DateTime();
//1毫秒=1000微秒,u表示的是微秒(格式化结果是6位),除以1000即可得到毫秒
echo '当前时间:'.$d->format( 'Y-m-d H:i:s.u' );
echo '
';
echo '当前毫秒数: '.floor($d->format('u')/1000);
解决方案二
使用微秒数,如果调用指定参数true,则返回一个浮点数,微秒是小数部分。
$t = microtime(true);
echo '当前微秒数: '.sprintf('%06d',($t-floor($t))*pow(10,6) );
其中$t-floor($t)是获取到小数部分,乘以10的6次方是转换为6位整数部分 ,以便用%06d进行格式化,获取到微秒数值。
当然,你也可以使用microtime不带参数的形式,此时将会返回一个空格分割的字串,微秒在前,秒在后。
扫码领个红包作为打赏吧~~
(余额宝支付时可抵现)
赏
喜欢 (0)or分享 (0)