Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How Do I Convert a Unix Timestamp to ISO 8601 in JavaScript?

Tags:

javascript

I have a timestamp like this 1331209044000 and I want to convert it to an ISO 8601 timestamp. How can I convert it using JavaScript?

I use the jQuery "timeago" plugin - http://timeago.yarp.com/

like image 419
Vince Lowe Avatar asked Oct 12 '12 22:10

Vince Lowe


People also ask

How would you get an ISO timestamp from a date object in JavaScript?

The date. toISOString() method is used to convert the given date object's contents into a string in ISO format (ISO 8601) i.e, in the form of (YYYY-MM-DDTHH:mm:ss. sssZ or ±YYYYYY-MM-DDTHH:mm:ss.

How do you convert timestamps to time?

UNIX timestamps can be converted to time using 2 approaches: Method 1: Using the toUTCString() method: As JavaScript works in milliseconds, it is necessary to convert the time into milliseconds by multiplying it by 1000 before converting it. This value is then given to the Date() function to create a new Date object.


2 Answers

Assuming your timestamp is in milliseconds (or you can convert to milliseconds easily) then you can use the Date constructor and the date.toISOString() method.

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

If you target older browsers which do not support EMCAScript 5th Edition then you can use the strategies listed in this question: How do I output an ISO 8601 formatted string in JavaScript?

like image 140
maerics Avatar answered Oct 17 '22 17:10

maerics


The solution i used, thanks to the links provided

// 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));
like image 2
Vince Lowe Avatar answered Oct 17 '22 17:10

Vince Lowe