1

我对 javascript 的 getDate 函数有一个非常奇怪的问题。在某些函数的开始,我使用以下方法创建了一个 Date 对象:

var day = new Date(date);  

其中date是一个unix时间戳。

我没有更改日期对象,但过了一段时间我尝试获取该对象的月份日期,但day.getDate()一直给我错误的值。

例如:

alert(day.getTime() + "-" + day.getDate() + "-"+ day.getMonth() +"-" + day.getFullYear() + "-" + day.getHours() + "-" + day.getMinutes() + "-" + day.getSeconds());  

给我以下结果:1290297600-15-0-1970-23-24-57

在其他时候,结果是:1290384000-15-0-1970-23-26-24

这是奇怪的部分,如果您查找 unixtimestamp 1290297600,您会看到这是 2010 年 11 月 21 日格林威治标准时间 00:00:00 的时间戳(1290384000 是第二天,同一时间)
时间戳是正确的,但是我无法理解它给我的日期。
在任何浏览器中都会发生这种情况。

我究竟做错了什么?

4

2 回答 2

2

这里的问题是 JavaScript 中的Date 对象不采用 Unix 时间戳(自纪元以来的秒数),它实际上采用自纪元以来的毫秒数。如果您只是将date变量乘以 1000,那么您将得到正确的输出。

这里的例子

于 2010-12-06T21:57:25.377 回答
0

时间 = Unix 时间戳格式。我在时间上加了 64800 秒,所以它会转换为山地标准时间。

*时间戳 24 * 60 * 60

.getTime()//毫秒 24 * 60 * 60 * 1000

私人日期字段 dateField1; /////////////////////

dateField1= new DateField("日期:", DateField.DATE); f.append(dateField1);

日期 d = 新日期();dateField1.setDate(d);

String TimeSeg = String.valueOf(((dateField1.getDate().getTime()/1000)+64800));

于 2011-03-03T06:18:03.313 回答