Nongthonbam Tonthoi
Nongthonbam Tonthoi

Reputation: 12953

How to convert milliseconds to date and time?

I know this question has been asked and answered many times, but I could not convert a given milliseconds to date and time.

I have the following code:

var date = '1475235770601';
var d = new Date(date);
var ds = d.toLocaleString();
alert(ds);
console.log(ds);

When I run this I see Invalid Date in console as well as in alert.

But when I paste the milliseconds here, it converts fine in the format in local date and time as Fri Sep 30 2016 17:12:50.

Actually I want to convert in in the format 09/30/16 17:12:50.

Upvotes: 11

Views: 30424

Answers (3)

Alexander Gorg
Alexander Gorg

Reputation: 1078

I got quite a reasonable result with:

const rawDate = new Date(milliseconds)
const date = rawDate.toLocaleDateString() + " " + rawDate.toLocaleTimeString()

This outputs date and time in a locally accepted format (depending on user system datetime settings, I guess)!

So if you need just a locally accepted format (and do not strictly prefer slashes in the date) - you can use that.

Upvotes: 2

Nongthonbam Tonthoi
Nongthonbam Tonthoi

Reputation: 12953

I ended up changing my code like this:

var date = '1475235770601';
var d = new Date(parseInt(date, 10));
var ds = d.toString('MM/dd/yy HH:mm:ss');
console.log(ds);

Output:

09/30/16 17:12:50

Upvotes: 8

Mureinik
Mureinik

Reputation: 311053

Date's constructor takes a number, not a string. Either feed it in directly:

date = 1475235770601; // Note the lack of quotes making it a number

Or, if you already have a string, convert it explicitly:

date = parseInt(date);

Upvotes: 10

Related Questions