Converter os resultados json para uma data [duplicado]

possível duplicado:
Como formatar uma data JSON?

Tenho o seguinte resultado de uma chamada de $getJSON do JavaScript. Como converter a propriedade start para uma data apropriada em JavaScript?

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

Obrigado!

Author: Community, 2009-08-07

4 answers

Tens de extrair o número do texto, e passá-lo para a data constructor:

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

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

As partes são:

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
 86
Author: Greg, 2018-04-13 16:07:10

Eu uso isto:

function parseJsonDate(jsonDateString){
    return new Date(parseInt(jsonDateString.replace('/Date(', '')));
}
 76
Author: Rudy, 2015-06-30 07:46:29

Se utilizar jQuery

No caso de usar o jQuery do lado do cliente, poderá estar interessado em Este post que fornece o código de como estender globalmente a função $.parseJSON() do jQuery para converter automaticamente as datas para si.

Você não tem que alterar o código existente no caso de adicionar este código. Não afecta as chamadas existentes para $.parseJSON(), mas se começar a usar $.parseJSON(data, true), as datas em data serão automaticamente convertidas para as datas em Javascript.

Suporta Asp.net cadeias de datas: /Date(2934612301)/ assim como cadeias de caracteres ISO 2010-01-01T12_34_56-789Z. O primeiro é mais comum para a maioria das plataformas web back-end usadas, o segundo é usado pelo navegador nativo JSON support (bem como outras bibliotecas do lado cliente JSON2.js).

Enfim. Vá ao blog post para obter o código. http://erraticdev.blogspot.com/2010/12/converting-dates-in-json-strings-using.html
 10
Author: Robert Koritnik, 2010-12-27 16:11:05

Se esse número representar milisegundos, use o construtor da data:

var myDate = new Date(1238540400000);
 6
Author: Andreas Grech, 2009-08-07 11:00:05