记录moment转换时区问题

记录moment转换时区问题,第1张

我的表单里面需要针对时区选择时间,也就是选择东一区的晚上10点

使用moment + 时区时间格式

例如:选择东一区的晚上10点 --》 moment('2022-04-01 10:00:00+0100')

这样就可以取到东一区的晚上10点的时间

[toc]

默认情况下,Moment Timezone会缓存检测到的时区,也就是后续调用 moment.tz.guess() 将始终返回相同的值(即使在两次调用中已经更改了时区)。

要忽略缓存并使用新值覆盖缓存,需要调用带参数的方法:

使用方法: moment.tz(..., String) ,最后一个参数String是时区标识符:

创建的时刻具有不同的UTC时间,是因为这些时刻是在不同的时区创建的。

使用方法: moment(...).tz(String) ,String是时区标识符:

首先 moment('2021-08-20 10:00:00') 即在默认时区中创建对象,然后 tz(String) 将其时区更改为指定的时区

创建的时刻具有相等的UTC时间,因为这些时刻是在默认时区中创建的

注意:上面两种方法得到不同结果的原因是因为传入的时间字符串 '2021-08-20 10:00:00' 本身是没有时区标识的,所以在转换的时候不同方法会加上不同的时区标识导致的差异,但是如果传入的时间本身就是能明确时间的 时间戳 UTC时间('2021-10-31T07:01:00Z') 的话,这两种方法得到的结果就是一样的了。

注意:小写z格式化标记并不总是显示缩写的时区名称,而是显示每个区域的时间偏移。

注意:后续调用 moment.tz.setDefault 不会影响现有moment对象或其克隆。

官方文档


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11236582.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存