2017-01-02 3 views
1

Я сохраняю laptimes в базе данных в следующем формате: 103.900.Дата вывода на десятую часть секунд?

Я вывода времени из базы данных, используя следующий формат даты:

date('i:s.U', $video->best_lap) 

Что я получить обратно есть: 01: 43.103. Фактическое время вывода должно отображаться 01: 43,900. Есть ли какой-нибудь способ заставить PHP играть хорошо?

+2

Из [Документы PHP] (http://php.net/manual/en/function.date.php): 'Примечание: Поскольку эта функция принимает только целые временные метки, символ формата u полезен только при использовании функция date_format() с пользовательскими временными метками, созданными с помощью date_create(). 'Рассмотрим использование DateTime и его метод 'format()' –

+0

Спасибо, Марк, но я не уверен, как это помогает? @Mark – Transition

+1

Для чего-то вроде этого я бы предложил сохранить время в десятые доли секунды, а затем преобразовать либо после, либо после вытащить его из базы данных. –

ответ

1

функции даты PHP (используя Unix временные метки, которые являются целыми числами) не поддерживают дробные секунд (как описано в PHP Docs)

Примечание: Поскольку эта функция принимает только целое число, временные метки и- формат символа полезен только при использовании функции date_format() с пользовательскими временными метками, созданными с помощью date_create().

И заметьте также, что дробная маска формата часть u, не U (строчный, а не прописной)

Однако объекты DateTime поддерживают дробные секунды, так что вы можете использовать:

$dto = DateTime::createFromFormat('U.u', '103.900'); 
echo $dto->format('i:s.u'); 

 Смежные вопросы

  • Нет связанных вопросов^_^