首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中正确使用Date()?

如何在javascript中正确使用Date()?
EN

Stack Overflow用户
提问于 2012-09-24 21:43:50
回答 1查看 75关注 0票数 1

当我尝试解析unix-timestamp时,我在使用Date对象时遇到问题。

示例:

代码语言:javascript
复制
//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:

代码语言:javascript
复制
var unixTimestamp = data.timestamp; //1348514100000
var date = new Date();
date = date.setDate(unixTimestamp);
console.log(date.getDay()); // still wrong..

我曾尝试解析string-timestamp以将int转换为

代码语言:javascript
复制
var intUT = parseInt(unixTimestamp);

但是仍然不是正确的日期和时间。我真的不知道该怎么办。如何从这个unix时间戳中获得正确的日期和时间?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 21:57:12

您的代码完全没有问题,唯一的问题可能是类型不正确。尝试这样做:

代码语言:javascript
复制
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*()系列方法:

代码语言:javascript
复制
new Date(+"1348514100000").getUTCHours()

上面的代码将始终返回19 (格林威治标准时间),与浏览器/操作系统时区无关。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12566332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档