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

时间:2015-07-01 18:50:46

标签: javascript mysql datetime

使用$('.ct').each(function() { var id = $(this); }) ,我们可以在javascript中将日期对象转换为mysql datetime格式。但是时区总是被视为客户端(浏览器的)时区。

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

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

我可以使用dateObj.toISOString().slice(0, 19).replace('T', ' ')获取纽约时间。但不知道下一步该做什么。考虑到时差,似乎应该做点什么......

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

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

保存: 您知道Alice将她的时区设置为特定值,因此,您需要将Alice的时区转换为UTC。如果Alice在晚上11:59:59进入会议时间,那么存储的时间将是它在GMT中发生的时间,这将是+4/5小时,具体取决于是否正在观察DST。这听起来像使用您的解决方案,您需要一个像dateTimeUTC=FromSpecificTimeZoneToUTC(specificTimeZoneDateTime,'Eastern Standard Time')

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

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

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