存储在GMT+0服务器中的日期,无需日照保存。
客户端应该以自己的时区格式接收它。因此,我们可以得到时区偏移量,并用收到的日期对其进行汇总:
const currentTime = new Date();
this.timezoneOffset = currentTime.getTimezoneOffset();然后,我们可以以某种方式检查DLS区域中的客户端,例如使用momentjs:
const isDaylightSavingTime = moment().isDST();在这里,我找不出三件事: 1) getTimezoneOffset()是否已经包含了日照节约信息2),如果没有,还有什么更好的方法来检查DST的用户(因为我在它自己的基础上没有一些国家和城市) 3)矩().add(矩().utcOffset(),'m')返回日期吗?
发布于 2018-11-18 23:43:40
在这里,我找不到三件事: 1) getTimezoneOffset()是否已经包含了日照节约信息?
矩是ECMAScript日期对象的包装器。内置日期实例的时区偏移量基于主机系统设置。根据实现的不同,它可能反映或不反映对相关日期(即调用方法的日期)的时区的历史性更改。它至少会反映当前的设置。
( 2)如果不是,在DST中检查用户更好的方法是“那一刻”(因为我在它自己的基础上没有一些国家和城市)
你需要定义“更好”。除了其他库(例如https://moment.github.io/luxon/)之外,还有时间b和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString之类的web API和timeZone选项,它们使用"Asia/Shanghai“之类的IANA位置名称。如果您愿意,也可以下载和使用IANA时区数据库。
( 3)矩().add(矩().utcOffset(),'m')返回日期是否有节能型日?
您不能修改时区偏移量,只有一个getter,因此任何“本地”日期都将应用时区偏移量,无论是特定日期和位置的标准偏移量还是夏令偏移量。上面所做的就是通过偏移量移动时间,它不会改变时区(除非它跨越夏时制边界)。
Date对象在本质上是UTC,所以一般的方法是对所有东西使用UTC,并且只考虑时区偏移以表示。这并不能涵盖所有的场景,但大多数情况都是如此。其余的案例需要基于用例的具体方法。
如果你描述你想做的事情,你可能会得到更多相关的答案。
https://stackoverflow.com/questions/53364735
复制相似问题