0

我正在编写一个将在全球范围内使用的 mvc4 应用程序。应用程序的一部分正在记录添加或修改事务的时间。

所以我将交易日期时间保存为 UTC。从客户端,我最好的方式来显示他们期望的日期是什么?

这是我应该使用的javascript函数还是应该在视图中做某事?

4

2 回答 2

0

这取决于您的喜好。如果您在服务器端有用户时区,存储在数据库中,最简单的方法是使用DateTimeOffset.

示例:在 c# fx 3.5 中的特定时区创建 DateTime

或者,使用JavaScript getTimezoneOffset() 方法,设置 cookie 并在服务器上读取它。您也可以使用许多客户端库,特别是如果您使用客户端模板。

于 2012-09-16T11:14:36.713 回答
0

在内部,javascript 日期对象将时间存储为自一个纪元 UTC (1970-01-01T00:00:00Z) 以来的毫秒数。传输时间的最简单方法是使用该数字,因此:

// 2012-09-16T10:30:00.000Z
var ms = 1347791400000;

// Create a new date object using UTC milliseconds
var d = new Date(ms);

alert(d); // Shows local time equivalent, e.g. 2012-09-16T20:30:00GMT+1000

或者,您可以传递 UTC 时间戳,将其拆分为组件并使用Date.UTC将其转换为日期对象。请注意,月份是从零开始的,因此必须从日历月份数中减去一个。

要获取本地时间的 UTC 毫秒值,请使用Date.prototype.getTime。对于上面的例子:

alert(d.getTime()); // 1347791400000
于 2012-09-16T12:23:00.213 回答