2016-07-15 196 views
-1

我创建了一个函数,它返回的日期如下: 2016-07-15T10:10:52。 +00:00DateTime中的3位数字,以毫秒为单位

这很好,但问题是数字为毫秒。如何删除最后3位数字?我只需要3个。

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

    return $d->format('Y-m-d\Th:i:s.uP'); // note at point on "u" 
    } 

回答

2

u修改器将始终返回六位数。 Quoting the manual

微秒(在PHP 5.2.2中添加)。请注意,date()将始终生成000000,因为它需要一个整数参数,而DateTime :: format()确实支持微秒,如果DateTime是以微秒创建的。

如果你不想这样,你必须手动插入你需要的格式,例如:

return $d->format('Y-m-d\Th:i:s.') . substr($micro, 0, 3) . $d->format('P'); 

这一操作将输出类似2016-07-15T12:29:30.546+02:00

+0

可耻的是我。谢谢 – sherdog

相关问题