减号整数在Date中如何工作?

时间:2015-05-15 14:24:26

标签: javascript

javascript Date如何解释毫秒整数?

var d = new Date(-1724115600000); //this gives me a date in the past, which I want
console.log(d);

var d = new Date(1724115600000); 
console.log(d);

(我们有一个错误,其中 - 符号没有通过。但我不明白 - 的重要性 - )

3 个答案:

答案 0 :(得分:2)

0将是1. 1970年1月。增量以无符号数表示,表示毫秒。如果您想要之前的日期,则需要使用负值(以毫秒为单位)。

您提供的负数将在过去提供一个数字,另一个在未来:

  

日期1915-05-14T23:00:00.000Z
  日期2024-08-20T01:00:00.000Z

如果您在过去使用第二个号码,那么当您尝试时,它可能已经丢失了最后一个数字。在这种情况下,它会给出:

  

日期1975-06-19T12:06:00.000Z

var d = new Date(-1724115600000); //this gives me a date in the past, which I want
document.write(d + "<br>");

var d = new Date(1724115600000); //This gives me a date in the past too. 
document.write(d + "<br>");

var d = new Date(172411560000); //missing last digit
document.write(d);

答案 1 :(得分:2)

Date对象构造函数可以使用variety of inputs,但以这种方式调用它时使用整数值1:

  

整数值,表示自1970年1月1日00:00:00 UTC(Unix Epoch)以来的毫秒数。

负值会在Unix Epoch之前给出日期,正值是在Epoch之后的日期。

答案 2 :(得分:1)

//negative sign give you the date before 1970. in your example

var d = new Date(-1425223942000);// this gives date in the past
        document.write(d)  //Sun Nov 02 1924 03:27:38 GMT-0500 (Eastern Standard Time)

document.write('<br/>')
var d = new Date(1425223942000); //This gives date in th  future. 
document.write(d); // Sun Mar 01 2015 10:32:22 GMT-0500 (Eastern Standard Time)

//Unfortunately i cannot post the screenshots yet