2012-10-12 9 views
20

Ich möchte die jquery timeago Plugin verwenden - http://timeago.yarp.com/Unix-Zeitstempel ISO 8601

Ich habe Zeitstempel wie diese 1331209044000 und die docs sagen, ich brauche eine ISO 8601-Zeitstempel.

Um ehrlich zu sein, ich habe noch nie 8601 von ISO gehört

, wie ich es umsetzen kann?

Prost

+0

Weitere Informationen zum Standard finden Sie unter http://en.wikipedia.org/wiki/ISO_8601. Ich fürchte, Sie müssen einfach eine Zeichenfolge basierend auf den 'Date'-Komponenten erstellen. – Jacob

+2

Das sieht vielversprechend aus: http://stackoverflow.com/questions/2573521/how-doi-ioutput-an-iso-8601-formatted-string-in-javascript – Aeoril

Antwort

41

Ihre Zeitstempel in Millisekunden Unter der Annahme (oder Sie Millisekunden leicht umwandeln können), dann können Sie die Date constructor verwenden und die date.toISOString() method.

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

Wenn Sie älteren Browser Ziel, die ECMAScript 5th Edition nicht unterstützen, dann können Sie die Strategien in dieser Frage aufgeführten verwenden: How do I output an ISO 8601 formatted string in JavaScript?

+0

Dies ist ECMAScript 5 - Siehe hier für Kompatibilität und Fallback code: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toISOString – Aeoril

+1

Vergessen Sie nicht, dass der Unix-Zeitstempel in Sekunden ist, aber das Javascript in Millisekunden zählt. Also ist es eigentlich 'neues Datum (timestamp * 1000) .toISOString();'. –

0

Die Lösung i verwendet, dank der Links

bereitgestellt
// 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

Natürlich nimmt diese Funktion an, dass das Datum tatsächlich in der Zeitzone Zulu (GMT + 0) ist. – maerics

Verwandte Themen