当我尝试解析unix-timestamp时,我在使用Date Object时遇到了问题。
示例:
//I am receiving json data that contains Unix-Timestamp like 1348514100000
var unixTimestamp = data.timestamp; //1348514100000
var date = new Date(unixTimestamp);
console.log(date.getDay()); // is wrong..
和示例2:
var unixTimestamp = data.timestamp; //1348514100000
var date = new Date();
date = date.setDate(unixTimestamp);
console.log(date.getDay()); // still wrong..
我试图解析string-timestamp以使用
转换intvar intUT = parseInt(unixTimestamp);
但仍然不是正确的日期和时间..我真的不知道该怎么做。如何从此unix时间戳中获取正确的日期和时间?
谢谢!
答案 0 :(得分:3)
您的代码完全正常,唯一的问题可能是类型不正确。试试这个:
new Date(+"1348514100000")
给了我Mon Sep 24 2012 21:15:00 GMT+0200 (CEST)
,其他人报告了Mon Sep 24 2012 14:15:00 GMT-0500 (CDT)
和12:15:00 GMT-0700 (PDT)
。根据{{3}},它是Mon, 24 Sep 2012 19:15:00 GMT
。
请注意,所有这些日期代表完全相同的时间点。时区差异(因此不同的小时)仅归因于愚蠢的Date.toString()
实现(从Java语言复制的错误)。
处理此类日期的唯一可移植和内置方法是在纪元时间(毫秒)上运行或使用getUTC*()
系列方法:
new Date(+"1348514100000").getUTCHours()
上述代码始终返回19(GMT时间),与浏览器/操作系统时区无关。