Форматирование даты в javascript до миллисекунды
Мы используем следующую js lib от Microsoft https://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js
var datetimehigh = new Date(2011,01,12,14,45,55,596);
var sDate = datetimehigh.format("dd/MM/yyyy HH:mm:ss sss");
Я не могу заставить работать миллисекундную часть. Обратите внимание, что этот формат взят из Microsoft Mvc Ajax lib.
5 ответов
Если вы используете родной Date
объект javascript, вы можете просто использовать .toISOString
метод для получения форматированной строки с миллисекундами:
const date = new Date();
const dateString = date.toISOString(); // "2020-01-06T19:57:12.146Z"
Обратите внимание, что использование .toString
не даст вам точности до миллисекунд.
Используйте 'S' для форматирования в миллисекундах:
"dd/MM/yyyy HH:mm:ss:SSS"
Используя библиотеку формата даты, она должна выглядеть примерно так:
var nowMilliseconds = new Date().format("yyyy-mm-dd HH:MM:ss l");
http://blog.stevenlevithan.com/archives/date-time-format
L
за миллисекунды с двумя цифрами
l
(минус) для миллисекунд с тремя цифрами
Вот как я это делаю:
function date_to_string_with_milliseconds(date){
let date_str = date.toString()
let date_without_milliseconds = new Date(date_str) // truncated date since milliseconds are not included
let milliseconds_delta = date - date_without_milliseconds
let date_str_with_milliseconds = date_str.replace(/(^.*:\d\d:\d\d)(.*$)/, `$1:${milliseconds_delta}$2`)
return date_str_with_milliseconds
}
Использование:
date_to_string_with_milliseconds(new Date(Date.now())).toString()
// outputs 'Wed Nov 30 2022 16:40:42:991 GMT+0530 (India Standard Time)'
Такой способ имеет несколько преимуществ:
Строка даты, которую вы получаете в качестве вывода, может быть преобразована обратно в объект Date.
Это никак не меняет исходный объект даты, поскольку вам нужно только строковое представление.