5 javascript asp.net-mvc json date
我们的应用程序依赖于javascript(jQuery).所以有很多'application/json'请求.
我们一直在与日期挣扎一段时间,但尽管我们付出了努力,但我们无法弄清楚如何在ASP.NET MVC应用程序中处理它.
这就是我们想要的:
这是问题:
日期客户端对象始终与最终用户的时区一起使用.JSON.stringify(new Date())自动换班.
这个问题有点帮助,但我们需要记住在将日期发送到服务器之前更改日期.我们还需要记住,一旦我们做了,我们就需要转换new Date('2012-10-19T10:23:47.778Z')
我们知道JSON不知道日期,但是有一个可以解析日期的JSON.parse模拟会很好.
我们使用Newton Json.net来序列化/反序列化日期,但它在DateTimeKind.Unspecified中执行
题:
是否有一种优雅的方式来处理服务器和客户端上的日期?我们需要它作为整个应用程序中的交叉事物.
UPD:
我不得不说得更清楚.在我们的应用程序中,我们不需要考虑客户时区,因为我们只使用日期.
所以如果服务器返回2012-10-19T10:23:47.778Z',我们需要Date对象:
Fri Oct 19 2012 10:23:47 GMT+0300 (Kaliningrad Standard Time)
不
Fri Oct 19 2012 13:23:47 GMT+0300 (Kaliningrad Standard Time) (日期转移)
也许最好的方法是发送自 1970-01-01T00:00:00Z(即 UTC)以来的毫秒时间值,然后您就可以这样做,new Date(timeValue)并且您的日期对象设置为该 UTC 时间。它将根据客户端系统时区设置返回日期和时间。
例如对我来说:
alert(new Date(0)); // Thu Jan 01 1970 10:00:00 GMT+1000 (EST)
Run Code Online (Sandbox Code Playgroud)
如果您弄乱了客户端上的日期对象(例如添加一天),您可以只发送回时间值:
var timeValue = 1350518400000; // 2012-20-18T00:00:00Z
var date = new Date(timeValue);
alert(date); // 2012-10-18T10:00:00UTC+1000
// add a day
date.setDate(date.getDate() + 1);
alert(date.getTime()); // 1350604800000
Run Code Online (Sandbox Code Playgroud)
从第二个 timeValue 中减去第一个 timeValue,您将得到 86400000,这是一天中的毫秒数(如果这一天跨越夏令时更改边界,则无论哪种方式都将是一个小时)。在服务器上对时间值进行您喜欢的操作,将其保留为数字或将其转换为日期字符串。
| 归档时间: |
|
| 查看次数: |
4650 次 |
| 最近记录: |