Javascript getDate问题

时间:2010-12-06 21:46:02

标签: javascript getdate

我对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 gmt的时间戳(1290384000是第二天,同一时间)
时间戳是正确的,但我无法理解它给我的日期 在任何浏览器中都会发生这种情况。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

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

Example here

答案 1 :(得分:0)

时间= Unix时间戳格式。我添加了64800秒,因此它将被转换为Mountain Standard Time。

*时间戳24 * 60 * 60

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

private DateField dateField1; ///////////////////////

dateField1 = new DateField(“Date:”,DateField.DATE); f.append(dateField1);

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

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