How to convert datetime from the users timezone to EST in javascript
本问题已经有最佳答案,请猛点这里访问。
我有一个具有动态javascript日历的Web应用程序,它允许用户为给定的数据和时间设置事件。 我需要向用户推送通知,因此我需要将他们输入的日期时间和时区转换为东部标准时间,以便在正确的时间发送我的通知。
我想在javascript中这样做,这样当数据时间值到达php时,它就会以正确的格式添加到数据库中。
总而言之,我需要转换一个javascript数据时间和时区,我通过捕获用户数据时间,作为完整的UTC日期,转换到我的服务器时区,即EST - 纽约。
任何有关此事的帮助或指示都将不胜感激。
谢谢 :)
Pl检查这个脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function convertToServerTimeZone(){ //EST offset = -5.0 clientDate = new Date(); utc = clientDate.getTime() + (clientDate.getTimezoneOffset() * 60000); serverDate = new Date(utc + (3600000*offset)); alert (serverDate.toLocaleString()); } |
我会在你渲染它时(通过PHP)将EST时区偏移量绘制到页面中,然后在客户端上获取UTC时间并将其与你绘制的数量相抵消。否则,如果你的服务器移动时区你的 页面会突然报错时间。
我最近刚刚做了这个,并发现处理这个的最简单的方法是实际使用mySQL(我假设那是你的数据库),并且让你在输入日期标记时为你转换时区。 除非你担心这太过分,并且你试图绝对减少数据库正在做的工作,否则我会走这条路,而不是试图在JS中进行手动TZ转换。