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的时间还大一点呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个一个时间参照的选择问题
当执行以上语句的时候,输入的时间是以格林尼治当地的时间为参照物来计算时间,那么格林尼治的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格林尼治 0 时也就是本地同日 8 时,你的
diff也就是(本地 8 时 - 本地 0 时),就是 8 个小时咯……