Начиная с RFC7519"эпоха" (01 января 1970 г.), отметка /Date(1545062400000)/
известна как отметка даты, использующая формат отметки времени UNIX, который нельзя напрямую использовать в качестве объекта JS Date
без его предварительного преобразования.Причина использования тиков заключается в том, что формат JSON не имеет специального представления для структуры DateTime
при сериализации в простые строки (см. эту ссылку ).
Вы можете создать пользовательскую функциючтобы преобразовать тики в объект JS Date
:
function toJSDate(value) {
var regex = /Date\(([^)]+)\)/;
var results = regex.exec(value);
var date = new Date(parseFloat(results[1])); // or parseInt
return date;
}
Или еще проще без регулярных выражений, просто выбирая числовые значения следующим образом:
function toJSDate(value) {
var date = new Date(parseFloat(value.substring(6))); // or parseInt
return date;
}
Затем используйте эту функцию для ticks-to-преобразование даты:
// example
var header = response.data.Model;
var dateObject = toJSDate(header.Date);
// assign date object afterwards
Обратите внимание, что вам может потребоваться создать другую структуру объекта, которая будет иметь вид response.data.Model
, но с использованием свойства Date
на стороне сервера с объектом даты JS.
В качестве альтернативыВы можете создать свойство string
только для получения, которое использует ToString()
для преобразования значения DateTime
в желаемое строковое представление, а затем использовать его внутри JS.
Примечание:
Избегайте использования имени свойства viewmodel, которое точно соответствует именам и объектам встроенных функций JS (т.е. Date
) для ясности.
Связанные проблемы:
Как мне оформитьдата Microsoft JSON?
Преобразование .NET DateTime в JSON