我对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是第二天,同一时间)
时间戳是正确的,但我无法理解它给我的日期
在任何浏览器中都会发生这种情况。
我做错了什么?
答案 0 :(得分:2)
这里的问题是JavaScript中的Date object不接受Unix时间戳(自纪元以来的秒数),它实际上需要自纪元以来的毫秒数。如果您只是将date
变量乘以1000,那么您将获得正确的输出。
答案 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));