1

我错过了一些东西,但我在网上找不到任何提示。当我使用 Javascript 的 getTime() 函数时,它似乎不从 1970、01、01、0、0、0、0 即 1970 年午夜开始计算,而是从 1969、12、01、1、0、0、0 开始计算

我设置了以下内容:

var d = new Date(1970, 01, 01, 0, 0, 0, 0);
alert(d.getTime());

我的想法是我应该得到 0(因为没有时间过去)。但我得到 2674800000 毫秒

如果我设置:

var d = new Date(1969, 12, 01, 1, 0, 0, 0);
alert(d.getTime());

我得到 0 毫秒

我也在 W3C 网站上玩过这个功能,结果是一样的。

此外,当我计算两个日期之间的差异时 - 现在和今年年初,它不会返回正确的值:

var Now = new Date ();
var Begin = new Date (Now.getFullYear(), 01, 01);
var dif = Now.getTime() - Begin.getTime();
alert(dif);

我得到对应于大约的毫秒数。59 天

我很确定我看不到什么,因为我还是一个编程蹒跚学步的孩子。我感谢任何评论

4

1 回答 1

2

您有两个错误共同导致您看到的错误。首先,月份是零索引的,所以一月对应于 0(从这里的示例中您可以看到他们的 2010 年 1 月 14 日示例)。其次,您的浏览器设置为某个时间,导致错误。我在 PST,所以这就是我得到的。

a = new Date("January 1, 1970")
  Thu Jan 01 1970 00:00:00 GMT-0800 (PST)
a = new Date("January 1, 1970 GMT")
  Wed Dec 31 1969 16:00:00 GMT-0800 (PST)
a.getTime()
  0
于 2012-03-28T10:16:28.163 回答