使用w3schools的交互式js环境(here)执行以下代码:
var d1=new Date(1306796400000);
document.write("Original form: " + d1);
显示以下消息:
Original form: Tue May 31 2011 00:00:00 GMT+0100 (GMT Daylight Time)
但是这个:
var d1=new Date(1231977600000);
document.write("Original form: " + d1);
显示以下消息:
Original form: Thu Jan 15 2009 00:00:00 GMT+0000 (GMT Standard Time)
我认为毫秒值是自UTC时间01/01/1970以来的毫秒数。 但看起来它包含时区标志。
有谁可以说毫秒值格式是什么?
提前致谢。
答案 0 :(得分:4)
没有特别的旗帜。这只是Daylight Savings。
答案 1 :(得分:1)
Javascript在用户的浏览器中执行,而浏览器又从用户的操作系统中读取当前时区。这就是它如何“猜测”正确的时区。
答案 2 :(得分:0)
毫秒不包含任何此类标志。但是,使用new Date(n)
创建的日期对象的时区取决于解释器/浏览器中的区域设置。对我来说:
var d = new Date(1231977600000);
d.toString();
// "Wed Jan 14 2009 17:00:00 GMT-0700 (Mountain Standard Time)"
d.toUTCString();
// "Thu, 15 Jan 2009 00:00:00 GMT"
答案 3 :(得分:0)
没有。它使用本地时区信息,包括DST过渡日期。因此
的区别javascript:alert([new Date(1306796400000),new Date(1231977600000)].join('\n'))
将您的语言区域设置为DST-less timezone,差异将消失。