var UTC = Date.UTC(2000,1,1,0,0,0) //949363200000
var local = Date.parse('2000/2/1 00:00:00') //949334400000
var diff = (UTC - local)/1000/3600 //8
我的疑问是,为什么UTC的值别本地时间的值还大呢?东8区的时间不是比格林尼治标准时间快8个小时吗,为什么UTC的时间还大一点呢?
var UTC = Date.UTC(2000,1,1,0,0,0) //949363200000
var local = Date.parse('2000/2/1 00:00:00') //949334400000
var diff = (UTC - local)/1000/3600 //8
我的疑问是,为什么UTC的值别本地时间的值还大呢?东8区的时间不是比格林尼治标准时间快8个小时吗,为什么UTC的时间还大一点呢?
13 回答12.6k 阅读
7 回答1.8k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1k 阅读✓ 已解决
这个一个时间参照的选择问题
当执行以上语句的时候,输入的时间是以格林尼治当地的时间为参照物来计算时间,那么格林尼治的2000年2月1号0点0分0秒,就是我们北京时间的2000年2月1号 8点0分0秒,
返回的UTC是一个从标准时间1970/01/01 0点开始计算的毫秒数
执行这语句时,输入的时间是以本地时间为参照物也就是北京时间,那么北京时间2000年2月1号0点0分0秒,换算成格林尼治标准时间就为 2000年1月31号16点0分0秒,
返回local是一个从标准时间1970/01/01 0点开始计算的毫秒数
那么大家都换算成标准时间的话local的就要慢8个小时.
要相同,那么大家采用下相同的参照物,把UTC的输入时间往前8个小时,或local时间输入往后8小时
我们看到在时间的字符创表示中有类似
GMT+0800
信息,它就是表示显示的时间比标准时间快8个小时如:
时间字符处表示:
Sun Jan 10 2016 10:45:57 GMT+0800 (CST)
毫秒数表示为:
1452393957448
标准时间UTC字符串表示为:
Sun, 10 Jan 2016 02:45:57 GMT