/ / 3 cyfry dla milisekund w DateTime - php, datetime

3 cyfry dla milisekund w DateTime - php, datetime

Stworzyłem funkcję i zwraca ona datę wygląda następująco: 2016-07-15T10: 10: 52.031563+00: 00

Jest dobrze, ale problemem są cyfry milisekund. Jak usunąć 3 ostatnie cyfry? Potrzebuję tylko 3.

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"
}

Odpowiedzi:

2 dla odpowiedzi № 1

The u modyfikator zawsze zwraca sześć cyfr. Cytowanie instrukcji:

Mikrosekundy (dodane w PHP 5.2.2). Zauważ, że date () zawsze wygeneruje 000000, ponieważ przyjmuje parametr całkowity, podczas gdy DateTime :: format () obsługuje mikrosekundy, jeśli DateTime został utworzony z mikrosekundami.

Jeśli tego nie chcesz, musisz ręcznie wstawić potrzebny format, np.

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

Spowoduje to wyświetlenie czegoś takiego 2016-07-15T12:29:30.546+02:00