2 votes

Comment convertir cette date JSON ?

La chaîne suivante a été renvoyée par un objet de réponse formaté en JSON et je souhaite l'analyser pour en faire quelque chose d'utile : /Date(1283457528340)/

Comment l'analyser à l'aide de JavaScript pour en faire quelque chose de convivial ?

5voto

Thai Points 4698

C'est le nombre de millisecondes depuis l'époque.

Cette fonction extrait un nombre d'une chaîne de caractères et renvoie un objet Date créé à partir de ce nombre.

function dateFromStringWithTime(str) {
    var match;
    if (!(match = str.match(/\d+/))) {
        return false;
    }
    var date = new Date();
    date.setTime (match[0] - 0);
    return date;
}

Par exemple,

console.log(dateFromStringWithTime('/Date(1283457528340)/').toString());

Le résultat est le suivant :

Fri Sep 03 2010 02:58:48 GMT+0700 (ICT)

1voto

Dépend. Que représente cette valeur ? En supposant que l'horodatage UNIX soit en millisecondes (ajustez autrement), vous pouvez extraire la valeur, puis appliquer parseInt et construire un nouveau Date avec lui.

var str     = "/Date(1283457528340)/";
var matches = str.match(/([0-9]+)/);
var d       = parseInt(matches[0]);
var obj     = new Date(d);

Vous devriez alors être en mesure d'utiliser la fonction Date comme d'habitude. Ceci n'a pas été testé et peut contenir des erreurs, mais l'idée devrait être bonne.

Edita: matches[1] -> matches[0]

0voto

c-j-o Points 25
function parseJsonDate(jsonDate) {
    var epochMillis = jsonDate;
    var d = new Date(parseInt(epochMillis.substr(6)));
    return d;
}

Le code ci-dessus vous donnera une date formatée d'une manière utile dans une vue donnée.

Le paramètre passé dans la fonction ( jsonDate ) est la chaîne de caractères que vous essayez de convertir et la ligne return d renvoie la date bien formatée.

Il s'agit simplement d'un autre moyen d'obtenir la date dont vous avez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X