2016-07-15 120 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