2017-04-25 5 views
0

私は現在、秒とミリ秒の合計時間である時間文字列を持っています。 "83.555"秒。私のクエリのために私は、これは「:01:00 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

date()機能の代わりにDateTimeオブジェクトを使用する必要があります。 date()は整数を取るため、10進数の後にすべてを破棄します。 DateTimeは1秒の小数部をサポートします。

DateTimeオブジェクトを生成するには、解析する書式を指定する必要があります。それであなたは必要なものをフォーマットすることができます。

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

"00:01:23.555000" 
関連する問題