/ / 3 Stellen für Millisekunden in DateTime - PHP, Datum / Uhrzeit

3 Ziffern für Millisekunden in DateTime - php, datetime

Ich habe eine Funktion erstellt und sie gibt ein Datum zurück, das wie folgt aussieht: 2016-07-15T10: 10: 52.031563+00: 00

Es ist in Ordnung, aber das Problem sind Ziffern für Millisekunden. Wie entferne ich die letzten drei Ziffern? Ich brauche nur drei.

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-dTh:i:s.uP"); // note at point on "u"
}

Antworten:

2 für die Antwort № 1

Das u Der Modifikator gibt immer sechs Ziffern zurück. Zitiere das Handbuch:

Mikrosekunden (hinzugefügt in PHP 5.2.2). Beachten Sie, dass date () immer 000000 generiert, da es einen Integer-Parameter verwendet, wohingegen DateTime :: format () Mikrosekunden unterstützt, wenn DateTime mit Mikrosekunden erstellt wurde.

Wenn Sie dies nicht möchten, müssen Sie das gewünschte Format manuell einfügen, z.

return $d->format("Y-m-dTh:i:s.") . substr($micro, 0, 3) . $d->format("P");

Dies wird dann so etwas wie ausgeben 2016-07-15T12:29:30.546+02:00