2016-05-23 107 views
0

我想知道如何在PHP中實現這個日期格式「2016-04-19T03:17:38.184 + 00:00」?這是什麼樣的日期時間格式?

這是有點不同於ISO 8601.請指教。

http://php.net/manual/en/function.date.php

謝謝。

+1

如果你不需要毫秒,它只是'日期( 'C' );'。如果你這樣做,請參閱http://stackoverflow.com/questions/17909871/getting-date-format-m-d-y-his-u-from-milliseconds一些類似的例子。 – Mike

回答

1

它不可能使用date()以顯示毫秒部分,因爲,從所述手動:

日期()總是會生成000000,因爲它需要一個整數參數,而日期時間::格式()不支持如果DateTime是以微秒創建的話,則爲微秒。

所以唯一的方法是使用DateTime並將微秒傳遞給構造函數。然而,因爲我們只需要幾毫秒,所以我們可以將它舍入,然後從尾部刪除結尾的三個0。

$t = microtime(true); 
$milli = sprintf("%03d",($t - floor($t)) * 1000); 
$d = new DateTime(date('Y-m-d H:i:s.'.$milli, $t)); 

echo $d->format("Y-m-d\TH:i:s."); 
echo substr($d->format("u"), 0, -3); 
echo $d->format('P'); 

輸出:

2016-05-22T22:41:57.294-05:00