web-dev-qa-db-fra.com

Convertir l'horodatage Unix en ISO 8601

Je veux utiliser le plugin jquery timeago - http://timeago.yarp.com/

J'ai des horodatages comme celui-ci 1331209044000 et les docs disent que j'ai besoin d'un horodatage ISO 8601.

Pour être honnête, je n'ai jamais entendu parler d'ISO 8601.

Comment puis-je le convertir?

À votre santé

31
Vince Lowe

En supposant que votre horodatage est en millisecondes (ou vous pouvez facilement le convertir en millisecondes), vous pouvez utiliser le constructeur Date et la méthode date.toISOString() =.

var s = new Date(1331209044000).toISOString();
s; // => "2012-03-08T12:17:24.000Z"

Si vous ciblez des navigateurs plus anciens qui ne prennent pas en charge EMCAScript 5th Edition, vous pouvez utiliser les stratégies répertoriées dans cette question: Comment puis-je générer une chaîne au format ISO 8601 en JavaScript?

54
maerics

La solution que j'ai utilisée, grâce aux liens fournis

// convert to ISO 8601 timestamp
function ISODateString(d){
    function pad(n){return n<10 ? '0'+n : n}
    return d.getUTCFullYear()+'-'
        + pad(d.getUTCMonth()+1)+'-'
        + pad(d.getUTCDate())+'T'
        + pad(d.getUTCHours())+':'
        + pad(d.getUTCMinutes())+':'
        + pad(d.getUTCSeconds())+'Z'
}

var d = new Date(parseInt(date));
console.log(ISODateString(d));
1
Vince Lowe