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