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


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

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

[ {"id": 1, "start": "/ Date(1238540400000)/"}, {"id": 2, "start": "/ Date(1238626800000)/"} ]

спасибо!

4 69

4 ответа:

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

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

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

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

если вы используете 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

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

var myDate = new Date(1238540400000);