from unix timestamp to datetime

133,633

Solution 1

Note my use of t.format comes from using Moment.js, it is not part of JavaScript's standard Date prototype.

A Unix timestamp is the number of seconds since 1970-01-01 00:00:00 UTC.

The presence of the +0200 means the numeric string is not a Unix timestamp as it contains timezone adjustment information. You need to handle that separately.

If your timestamp string is in milliseconds, then you can use the milliseconds constructor and Moment.js to format the date into a string:

var t = new Date( 1370001284000 );
var formatted = moment(t).format("dd.mm.yyyy hh:MM:ss");

If your timestamp string is in seconds, then use setSeconds:

var t = new Date();
t.setSeconds( 1370001284 );
var formatted = moment(t).format("dd.mm.yyyy hh:MM:ss");

Solution 2

Looks like you might want the ISO format so that you can retain the timezone.

var dateTime = new Date(1370001284000);
dateTime.toISOString(); // Returns "2013-05-31T11:54:44.000Z"

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString

Solution 3

Without moment.js:

var time_to_show = 1509968436; // unix timestamp in seconds

var t = new Date(time_to_show * 1000);
var formatted = ('0' + t.getHours()).slice(-2) + ':' + ('0' + t.getMinutes()).slice(-2);

document.write(formatted);

Solution 4

The /Date(ms + timezone)/ is a ASP.NET syntax for JSON dates. You might want to use a library like momentjs for parsing such dates. It would come in handy if you need to manipulate or print the dates any time later.

Solution 5

Import moment js:

var fulldate = new Date(1370001284000);
var converted_date = moment(fulldate).format(");
Share:
133,633
Robin Wieruch
Author by

Robin Wieruch

Making Full-Stack Developers with #JavaScript

Updated on August 07, 2021

Comments

  • Robin Wieruch
    Robin Wieruch almost 3 years

    I have something like /Date(1370001284000+0200)/ as timestamp. I guess it is a unix date, isn't it? How can I convert this to a date like this: 31.05.2013 13:54:44

    I tried THIS converter for 1370001284 and it gives the right date. So it is in seconds.

    But I still get the wrong date for:

    var substring = unix_timestamp.replace("/Date(", "");
    substring = substring.replace("000+0200)/", "");
    var date = new Date();
    date.setSeconds(substring);
    return date;