当我尝试解析unix-timestamp时,我在使用Date对象时遇到问题。
示例:
//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以将int转换为
var intUT = parseInt(unixTimestamp);但是仍然不是正确的日期和时间。我真的不知道该怎么办。如何从这个unix时间戳中获得正确的日期和时间?
谢谢!
发布于 2012-09-24 21:57:12
您的代码完全没有问题,唯一的问题可能是类型不正确。尝试这样做:
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)。根据http://www.epochconverter.com的说法,它是Mon, 24 Sep 2012 19:15:00 GMT。
请注意,所有这些日期代表完全相同的时间点。时区差异(以及不同的时间)只是由于愚蠢的Date.toString()实现(错误地抄袭了Java语言)。
处理此类日期的唯一可移植和内置方法是对纪元时间(毫秒)进行操作,或者使用getUTC*()系列方法:
new Date(+"1348514100000").getUTCHours()上面的代码将始终返回19 (格林威治标准时间),与浏览器/操作系统时区无关。
https://stackoverflow.com/questions/12566332
复制相似问题