我正在寻找有关在用户当前时区以外的时区内在网络应用程序中显示时间的建议。
我们将日期/时间以UTC / GMT格式存储在数据库中,因此格式化UTC / GMT时间或用户当前时区不是问题。但是,在其他情况下,我们需要从任意时区的角度显示时间(即此页面上的每个日期/时间都在东部,无论用户是否在西海岸,中部,东部,等等。)。
过去我们已经存储了偏移量或时区信息,然后在.Net中的服务器代码中完成了计算,或者我们已经在javascript中做了一些客户端操作,我宁愿避免,因为它们都变得非常依赖在javascript和用户的浏览器上。我想知道在更客户端/ MVC类型的应用程序中执行此操作的最佳方法。
以下是一个例子:
在上面的示例中,很容易获得UTC(#1)或用户当前时区(#2)的时间,但获得#3更加困难。我的选择似乎是:
还有其他选择吗?其他人如何处理类似情况?感谢。
答案 0 :(得分:1)
我们的结果:
在添加的转换例程的代码复杂性和它们似乎导致的错误之间,我们决定在大多数时间避免客户端日期处理。我们使用现有的日期处理例程在服务器上进行日期转换,并将格式化的日期或信息作为属性传递给视图使用的属性。如果我们需要一个单独的日期,我们只需添加另一个属性。我们通常只需要一些属性(即EventDateUTC,EventDateLocal,EventDateAlwaysAustralia和EventDayOfWeek)。
答案 1 :(得分:0)
我建议您查看Datejs库。它提供了一系列基本的JavaScript日期操作扩展,包括“setTimezone()”方法和将日期转换为格式化字符串以供显示的灵活方法。
在问题中没有明确允许使用库时,我通常会犹豫建议库,但Datejs不是很大而且非常可靠(即使它被称为“alpha”版本)。如果你不想依赖这样的东西,你可能还是想看看它,只是为了看看它的扩展是如何实现的基础。