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 № 1Das 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