Подтвердить что ты не робот

Преобразование результатов json в дату

Возможный дубликат:
Как отформатировать дату JSON?

У меня есть следующий результат от вызова $getJSON из JavaScript. Как преобразовать свойство start в нужную дату в JavaScript?

[ { "ID": 1, "старт": "/Дата (1238540400000)/" }, { "ID": 2, "старт": "/Дата (1238626800000)/" } ]

Спасибо!

4b9b3361

Ответ 1

Вам нужно извлечь номер из строки и передать его в конструктор Date:

var x = [ {"id":1,"start":"\/Date(1238540400000)\/"}, {"id":2,"start":"\/Date(1238626800000)\/"} ];

var myDate = new Date(x[0].start.match(/\d+/)[0] * 1);

Детали:

x[0].start                                - get the string from the JSON
x[0].start.match(/\d+/)[0]                - extract the numeric part
x[0].start.match(/\d+/)[0] * 1            - convert it to a numeric type
new Date(x[0].start.match(/\d+/)[0] * 1)) - Create a date object

Ответ 2

Я использую это:

function parseJsonDate(jsonDateString){
    return new Date(parseInt(jsonDateString.replace('/Date(', '')));
}

Ответ 3

Если вы используете jQuery

Если вы используете jQuery на стороне клиента, вас может заинтересовать это сообщение в блоге, в котором содержится код, как глобально расширить jQuery $.parseJSON(), чтобы автоматически конвертировать даты для вас.

Вам не нужно менять существующий код в случае добавления этого кода. Он не влияет на существующие вызовы на $.parseJSON(), но если вы начнете использовать $.parseJSON(data, true), даты в строке data будут автоматически преобразованы в даты Javascript.

Он поддерживает строки даты Asp.net: /Date(2934612301)/, а также строки ISO 2010-01-01T12_34_56-789Z. Первый из них наиболее распространен для большинства используемых серверных веб-платформ, второй - поддержкой встроенного браузера JSON (а также других клиентских библиотек JSON, таких как json2.js).

В любом случае. Перейдите к сообщению в блоге, чтобы получить код. http://erraticdev.blogspot.com/2010/12/converting-dates-in-json-strings-using.html

Ответ 4

Если это число представляет миллисекунды, используйте конструктор Date:

var myDate = new Date(1238540400000);