admin管理员组

文章数量:1293424

I am using Date to convert unix milliseconds epoch to a date.

So 1501783442 == Tuesday, 8 August 2017 12:35:57.

But javascript says its Sun Jan 18 1970 14:39:43 GMT+0530 (IST).

<p id="demo"></p>

<script>
  var d = new Date(1501783442);
  document.getElementById("demo").innerHTML = d;
</script>

I am using Date to convert unix milliseconds epoch to a date.

So 1501783442 == Tuesday, 8 August 2017 12:35:57.

But javascript says its Sun Jan 18 1970 14:39:43 GMT+0530 (IST).

<p id="demo"></p>

<script>
  var d = new Date(1501783442);
  document.getElementById("demo").innerHTML = d;
</script>

Jsfiddle link.

Whats going on here?

Share Improve this question edited Aug 8, 2017 at 13:02 prasanth 22.5k4 gold badges32 silver badges56 bronze badges asked Aug 8, 2017 at 13:00 Pratik DeogharePratik Deoghare 37.2k30 gold badges106 silver badges147 bronze badges 2
  • 4 Isn't Unix timestamp in seconds? – Teemu Commented Aug 8, 2017 at 13:04
  • Date.now() (eg 1502197442246) has three additional digits. Try multiplying by 1000... – Ben Aston Commented Aug 8, 2017 at 13:04
Add a ment  | 

2 Answers 2

Reset to default 14

First of all, 1501783442 equals GMT: Thursday, August 3, 2017 6:04:02 PM according to https://www.epochconverter./.

Second of all, Unix uses seconds whereas Javascript uses milliseconds. So in order to convert, you must multiply by 1000, which then gives the correct result (corrected for the timezone that your browser lives in):

<p id="demo"></p>

<script>
  var d = new Date(1501783442 * 1000);
  document.getElementById("demo").innerHTML = d;
</script>

<p id="demo"></p>

<script>
  var d = new Date(1501783442);
  document.getElementById("demo").innerHTML = d;
</script>

本文标签: Epoch to date conversion in javascript giving wrong answerStack Overflow