我正在寻找有关在用户当前时区以外的时区显示Web应用程序中的时间的建议。Web应用程序中的时区敏感日期和时间显示?
我们将UTC/GMT的日期/时间存储在数据库中,所以格式化UTC/GMT或用户当前时区的时间不是问题。但是,在其他情况下,我们需要从任意时区的角度显示时间(即,本页面上的每个日期/时间都是东部的,无论用户是否在西海岸,中部,东部,等等。)。
过去我们已经存储了偏移量或时区信息,然后在.Net的服务器代码中完成了计算,否则我们在JavaScript中做了一些客户端操作,我宁愿避免,因为它变得非常依赖于javascript和用户的浏览器。我想知道在更多客户端/ MVC类型应用程序中执行此操作的最佳方法。
下面是一个例子:存储在分贝
- 日期:1302790667(星期四,2011年4月14日十四时17分47秒GMT)在中部时区中的客户端显示
- 转换日期:星期四四月14 9点17分47秒2011
- 日期其实我是想在东部时区显示,总:周四4月14日十时17分47秒2011
在上面的例子中,可以很容易地获得时间UTC(#1)或用户当前时区(#2)但是获得#3比较困难。我的选择似乎是:在数据库
- 商店偏移或时区,并在客户端上执行计算 - 这就是我们在与.net过去所做的那样,但它似乎在客户端代码,甚至是混乱我们目前正试图避免的路径。
- 在服务器上进行转换并发送完整日期以显示给客户端 - 客户端收到一个字符串(“Thu Apr 14 10:17:47 2011”)。这有效,但它不是很灵活。
- 在服务器上进行转换,将其分解成几部分并将它们发送给客户端,然后将它们放回到一起。 (“{DayOfWeek:Thu,Month:Apr,Day:14,Hour:10,Minute:17}”)。这给了我们正确的数据,并给了我们在日期格式化方面的更多灵活性,但是对于这种情况感觉有点不对。
任何其他选项的想法?其他人如何处理类似的情况?谢谢。
你最终使用了什么?我即将试用[此](https://github.com/csnover/js-iso8601),我有相同的客户要求,我正在争分夺秒! – blong 2011-09-29 13:20:30
我们最终完成了服务器上的所有计算。我会添加一个答案。 – 2011-09-29 17:51:00