2017-04-25 8 views
0

Ich habe derzeit eine Zeit Zeichenfolge, die die Gesamtmenge von Sekunden und Millisekunden, z. "83,555" Sekunden. Für meine Abfrage muss ich diese formatiert „00: 01: 23,555“, so wie ich jetzt war ich mitWie Datum mit Millisekunden von Sekunden zurückgeben?

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

aber ich habe gerade dies würde Ausgabe 00:01:23.000000

Gibt es eine Möglichkeit, um richtig Format der Zeitstring?

Danke für jede Hilfe.

+2

Rückkehr des 'DateTime' Objekt anstelle des' date() 'Funktion verwenden. Per [docs] (http://php.net/manual/en/function.date.php) "Beachten Sie, dass date() immer 000000 generiert, da es einen Integer-Parameter benötigt, während DateTime :: format() unterstützt Mikrosekunden, wenn DateTime mit Mikrosekunden erstellt wurde. " – jfadich

+0

Wenn 'DateTime' mit Sekunden verwendet wird, wird' DateTime :: __ construct() erzeugt: Zeitstring (83) konnte nicht an Position 0 (8): Unerwartetes Zeichen' analysiert werden. Es scheint nur Datumszeiten und nicht Sekunden zu formatieren. – Chris

Antwort

1

Sie müssen das DateTime Objekt anstelle der date() Funktion verwenden. date() nimmt eine ganze Zahl, so dass alles nach dem Komma weggeworfen wird. DateTime unterstützt Sekundenbruchteile.

Um das DateTime Objekt zu generieren, müssen Sie ihm das zu analysierende Format mitteilen. Dann können Sie formatieren, wie Sie brauchen.

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

wird

"00:01:23.555000" 
Verwandte Themen