2017-04-25 122 views
0

我目前有一個時間字符串,它是總秒數和毫秒數,例如「83.555」秒。對於我的詢問,我需要這個格式化爲「00:01:23.555」,所以我到現在爲止我所用如何以秒爲單位返回以毫秒爲單位的日期?

date("H:i:s.u", 83.555); 

但我意識到這將輸出00:01:23.000000

有沒有辦法正確格式時間字符串?

感謝您的任何幫助。

+2

使用'DateTime'對象,而不是'日期()'函數。根據[docs](http://php.net/manual/en/function.date.php)「請注意,date()總是會生成000000,因爲它需要一個整型參數,而DateTime :: format()支持如果DateTime是以微秒創建的,則爲微秒。「 – jfadich

+0

當使用'DateTime'時,會導致'DateTime :: __ construct():無法解析位置0(8)處的時間字符串(83):意外字符'。它似乎只格式化日期時間而不是秒。 – Chris

回答

1

您需要使用DateTime對象而不是date()函數。 date()取整數,因此丟棄小數點後的所有內容。 DateTime支持小數秒。

要生成DateTime對象,你需要告訴它你正在解析的格式。然後,您可以根據需要進行格式化。

Datetime::createFromFormat('s.u', 83.555)->format('H:i:s.u'); 

將返回

"00:01:23.555000"