2012-07-25 45 views
11
var date = new Date(1257397200000​); 
document.write(date); 
​ 

然我在寻找一种方式,根据不同的时区创建日期对象上面我Wed Nov 04 2009 23:00:00 GMT-0600 (Central Standard Time)如何unix时间戳转换为JavaScript日期对象(考虑时区)

的代码,表示该时间戳我想获取日期对象,如Thursday, November 5th 2009, 00:00:00 (GMT -5)

请注意,日期根据上述两个时区不同,尽管它们代表相同的时间点。我在CST,这就是为什么使用CST生成的对象?

谢谢。

+0

是的,它是最有可能使用你的(本地)时区见。我不知道这个库,但是应该有一个方法来选择什么时区来报告。请注意,时间戳不应该改变。 – 2012-07-25 18:55:59

+0

是的,时间戳不会改变。我的问题的答案很好,但你也可以找到[这个答案](http://stackoverflow.com/a/4322641/1413598)有帮助。 – sozhen 2012-07-27 22:50:07

回答

15

不,这些日期没有区别,因为它们不代表不同的时间点。这两个代表Thu, 05 Nov 2009 05:00:00 GMT

Date JavaScript中的对象是独立于时区的,它只代表时间点。 Date.toString()包含时区的事实很具误导性,Date中没有时区信息。这是自纪元开始几毫秒的封装。

您看到的时区基于OS /浏览器语言环境。 您不能在不同的时区中创建Date对象。考虑使用getUTC*()系列方法来获取浏览器时区不可知值。

BTW您的示例代码打印:

Thu Nov 05 2009 06:00:00 GMT+0100 (CET) 

我的电脑 - 这仍然是同一个时间点。

+2

+1!爱你强调'代表时间点'。 “ – Adi 2012-07-25 19:04:10

+1

”您不能在不同的时区创建日期对象。“感谢您提出这个问题。 – sozhen 2012-07-26 21:14:17

+0

所以基本上答案是你不需要关心时间戳转换成日期时用户的时区,因为它是自动完成的,对吧? – 2014-03-07 10:47:42

相关问题