vince lowe
Tengo una marca de tiempo como esta 1331209044000
y quiero convertirlo a una marca de tiempo ISO 8601. ¿Cómo puedo convertirlo usando JavaScript?
Uso el complemento jQuery “timeago” – http://timeago.yarp.com/
maéricos
Suponiendo que su marca de tiempo está en milisegundos (o puede convertir a milisegundos fácilmente), entonces puede usar el Date
constructor y el date.toISOString()
método.
var s = new Date(1331209044000).toISOString();
s; // => "2012-03-08T12:17:24.000Z"
Si se dirige a navegadores más antiguos que no son compatibles con EMCAScript 5.ª edición, puede utilizar las estrategias enumeradas en esta pregunta: ¿Cómo puedo generar una cadena con formato ISO 8601 en JavaScript?
-
Este es ECMAScript 5. Consulte aquí la compatibilidad y el código alternativo: desarrollador.mozilla.org/en-US/docs/JavaScript/Reference/…
– Xitalogía
12/10/2012 a las 23:09
-
No olvide que la marca de tiempo de Unix está en segundos, pero Javascript cuenta en milisegundos. Así que en realidad es
new Date(timestamp * 1000).toISOString();
.– Josef Kufner
16/09/2015 a las 23:43
-
Este comentario es para mí en el futuro: ¡TIENE QUE ESTAR EN MILISEGUNDOS!
– Tom Smykowski
9 de septiembre de 2020 a las 12:06
La solución que utilicé, gracias a los enlaces proporcionados.
// 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));
-
Por supuesto, esta función asume que la fecha está realmente en la zona horaria zulú (GMT+0).
– maéricos
9 oct 2014 a las 14:37
Ver es.wikipedia.org/wiki/ISO_8601 para obtener más información sobre el estándar. Me temo que simplemente tienes que construir una cadena basada en el
Date
componentes– jacob
12/10/2012 a las 22:55
Esto parece prometedor: stackoverflow.com/questions/2573521/…
– Xitalogía
12/10/2012 a las 23:07