夏令时:快1小时
冬令时:慢1小时
问题:
// value代表自1970年1月1日00:00:00 (世界标准时间) 起经过的毫秒数。
new Date(value);
// dateString 格式化后的日期,例如:1990-01-03
// 使用夏令时冬令时的国家会产生差异
new Date(dateString);
new Date('2021-03-14 02:00:00');
Sun Mar 14 2021 03:00:00 GMT-0400 (Eastern Daylight Time)
解决问题:将对应的时间t转换为东八区时间
1.计算t与格林威治时间的时间差
2.进而计算t对应的东八区时间
var d = new Date();
// getTimezoneOffset() 方法返回 UTC 时间和本地时间之间的时差,以分钟为单位。
var n = d.getTimezoneOffset();
var now = new Date().getTime(); // 本地时间距1970年1月1日午夜(GMT时间)之间的毫秒数
var targetDate = new Date(now + n * 60 * 1000 + 8 * 60 * 60 * 1000); // 东八区的时间