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



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

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

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

我可以用dateObj.toLocaleString('en-US', { timeZone: 'America/New_York'})获取当前纽约时间。但不确定下一步该怎么办。考虑到时差似乎是一件需要做的事情。。。

有人知道怎么做吗?

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

保存:您知道Alice将其时区设置为特定值,因此,您需要将Alice的时区转换为UTC。如果Alice输入了11:59:59 PM作为会议时间,则存储的时间将为格林尼治标准时间,即+4/5小时,具体取决于是否遵守夏令时。听起来,使用您的解决方案,您需要像dateTimeUTC=FromSpecificTimeZoneToUTC(specificTimeZoneDateTime,'Eastern Standard Time') 这样的功能

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

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

在我的文章中,在服务器端处理这样的转换可能会更好,因为你可以控制tz信息。我认为js可能太不一致了,因为时间信息是基于客户端计算机的区域设置,而不是操作的首选时区。此外,时区信息可能会更改。我不知道js是如何处理这些更改的。

相关内容

  • 没有找到相关文章

最新更新