JS 调整时区偏移后还是返回GMT+0800 (中国标准时间),我想将时区改为太平洋时区如:GMT-0700 (Pacific Daylight Time)。请问大家该如何处理呢?
`<script>
var timezone = -7; //洛杉矶市区
var d = new Date(); //当前时间
var len = d.getTime();
var offset = d.getTimezoneOffset() * 60000;
var utcTime = len + offset;
var cdate = new Date(utcTime + 3600000 * timezone);
console.log(cdate);
console.log(d);
</script>`
实际输出结果为:
想要的结果为:
Wed Oct 07 2020 06:47:00 GMT-0700 (Pacific Daylight Time)
Wed Oct 07 2020 21:47:00 GMT+0800 (中国标准时间)
请问需要如何处理呢?
JS 里的 Date 永远是本机时区,你无法更改 date 内部存储的时区信息,除非改操作系统。
默认 toString 就是以本机时区输出,你也可以 toUTCString 获取这个时间在世界协调时下的表示。
你想要的带时区信息的 Date 类型,JS 目前原生没有提供,你要等 Temporal 提案了。