gpt4 book ai didi

javascript - getTimezoneOffset() 是否包含夏令时信息以及如何获取这两个值?

转载 作者:行者123 更新时间:2023-12-01 01:30:00 24 4
gpt4 key购买 nike

服务器中存储的日期为 GMT+0,没有夏令时。

客户端应该以自己的时区格式接收它。因此我们可以获取时区偏移量并将其与接收日期进行汇总:

const currentTime = new Date();
this.timezoneOffset = currentTime.getTimezoneOffset();

然后我们可以以某种方式检查客户端是否位于 DLS 区域,例如使用 momentjs:

 const isDaylightSavingTime = moment().isDST();

我不明白三件事:1) getTimezoneOffset() 是否已经包含夏令时信息2)如果没有,更好的方法是检查DST中的用户然后时刻(因为我读过时刻js在它自己的基地中没有一些国家和城市)3) Moment().add(Moment().utcOffset(), 'm') 返回夏令时日期吗?

最佳答案

And there I can't figure out 3 things: 1) does getTimezoneOffset() already contain Day Light Saving information

Moment 是 ECMAScript Date 对象的包装器。内置 Date 实例的时区偏移基于主机系统设置。根据实现的不同,它可能反射(reflect)也可能不反射(reflect)相关日期(即调用该方法的日期)的时区的历史更改。它至少会反射(reflect)当前的设置。

2) and if not, what the better way to check is user in DST then moment (because I readed thet moment js have not some countries and cities in it's own base)

你需要定义“更好”。除了其他库(例如 Luxon )之外,还有像 timezonedb 这样的 Web API和 Date.prototype.toLocaleString以及使用 IANAtimeZone 选项地点名称,例如“亚洲/上海”。如果您愿意,您还可以下载并使用 IANA 时区数据库。

3) does Moment().add(Moment().utcOffset(), 'm') return date with Day Light Saving?

您无法修改时区偏移量,只有一个 getter,因此任何“本地”日期都将应用时区偏移量,无论是特定日期和位置的标准偏移量还是夏令时偏移量。上述所有操作都是按偏移量移动时间,它不会更改时区(除非跨夏令时边界移动)。

日期对象本质上是 UTC,因此一般方法是对所有内容都使用 UTC,并且只考虑时区偏移量进行表示。这并没有涵盖所有场景,但涵盖了大多数场景。其余案例需要根据用例采取特定方法。

如果您描述您正在尝试执行的操作,您可能会得到更相关的答案。

关于javascript - getTimezoneOffset() 是否包含夏令时信息以及如何获取这两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com