gpt4 book ai didi

javascript - 以mysql格式获取不同时区的UTC时间

转载 作者:行者123 更新时间:2023-11-29 22:16:32 24 4
gpt4 key购买 nike

使用 dateObj.toISOString().slice(0, 19).replace('T', ' ') 我们可以在 JavaScript 中将日期对象转换为 mysql 日期时间格式。但时区始终被视为客户端(浏览器)的时区。

我想将不同时区(不是浏览器时区)的日期和时间转换为UTC时间,然后转换为mysql时间格式。

例如:爱丽丝正在安排从悉尼到纽约的 session 。 Alice 输入纽约时间作为输入。即使浏览器的位置是悉尼,JavaScript 代码也必须假设浏览器的位置在纽约,并将日期时间转换为 UTC,然后转换为 mysql 格式。

我可以通过 dateObj.toLocaleString('en-US', { timeZone: 'America/New_York'}) 获取当前纽约时间。但不知道下一步该做什么。考虑到时差,似乎要做一些事情......

有人知道该怎么做吗?

最佳答案

因此,您希望始终将日期存储为事件发生位置的 utc 表示形式。

保存:您知道 Alice 将她的时区设置为特定值,因此,您需要从 Alice 的时区转换为 UTC。如果 Alice 输入 11:59:59 PM 作为 session 时间,则存储的时间将是 GMT 发生的时间,这将是 +4/5 小时,具体取决于是否遵守 DST。听起来使用您的解决方案您需要一个类似 dateTimeUTC=FromSpecificTimeZoneToUTC(specificTimeZoneDateTime,'Eastern Standard Time')

的函数
dateObj.toLocaleString('en-US', { timeZone: '<TimeZone name for GMT>'})

查看:Alice 现在已将此处的时区信息调整为 PST,即 GMT-8。由于我们知道事件发生在格林尼治标准时间凌晨 3:59:59,因此我们需要一个函数将 UTC 转换回特定时间(太平洋标准时间),这将在 Alices 更改的配置中产生下午 7:59:59。dateTimeSpecific=FromUTCToSpecificTimeZone(uTCTimeZoneDateTime,'太平洋标准时间')

在我看来,在服务器端处理这样的转换可能会更好,因为您可以控制 tz 信息。我认为js可能太不一致,因为时间信息基于客户端计算机的区域设置,而不是操作的首选时区。另外,时区信息可能会发生变化。我不知道js如何处理这些变化。

关于javascript - 以mysql格式获取不同时区的UTC时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31169363/

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