Отображение микросекунд будет зависеть от вашей версии PHP и от того, как вы хотите отформатировать время:
PHP <7.1: </strong>
- Формат
12:12:12.012342
(seconds.microseconds)
public function udate()
{
list($microSecondsPastNow, $nowTimeInSeconds) = explode(" ", microtime());
$microSeconds = $microSecondsPastNow * 1000000;
//$microSeconds is now an int, so we need to add leading zeroes to achieve
//the desired format. E.g. '000001' when we have 1 microsecond.
$formattedMicroSeconds = str_pad($microseconds, 6, '0');
$dateFormat = preg_replace('`(?<!\\\\)u`', $formattedMicroSeconds, 'H:i:s.u')
return date($dateFormat, $nowTimeInSeconds);
}
Формат
12:12:12.012.342
(seconds.milliseconds.microseconds)
public function udate()
{
list($microSecondsPastNow, $nowTimeInSeconds) = explode(" ", microtime());
$microSeconds = $microSecondsPastNow * 1000000;
//$microSeconds is now an int, so we need to add leading zeroes to achieve
//the desired format. E.g. '000001' when we have 1 microsecond.
$formattedMicroSeconds = str_pad($microseconds, 6, '0');
$dateFormat = preg_replace('`(?<!\\\\)u`', $formattedMicroSeconds, 'H:i:s.u')
list($milliPart, $microPart) = str_split($microSeconds, 3);
return date($dateFormat, $nowTimeInSeconds) . ".$milliPart.$microPart";
}
PHP> = 7.1:
Начиная с версии 7.1, new DateTime()
заполняет микросекунды фактическим значением.Предыдущие версии заполнены «000000».Итак, если вы в курсе своей версии PHP, большая часть работы уже выполнена.
- Формат
12:12:12.012342
(секунд. Микросекунды)
public function udate()
{
$now = new DateTime();
return $now->format('H:i:s.u');
}
Формат
12:12:12.012.342
(seconds.milliseconds.microseconds)
public function udate()
{
$now = new DateTime();
$microseconds = $now->format('u');
list($milliPart, $microPart) = str_split($microseconds, 3);
return $now->format('H:i:s') . ".$milliPart.$microPart";
}