javascript - 在 ASP.NET MVC - Javascript 应用程序中处理日期的最佳方式

标签 javascript asp.net-mvc json date

我们的应用程序严重依赖 javascript (jQuery)。所以有很多 'application/json' 请求。

一段时间以来,我们一直在为日期而苦苦挣扎,但尽管我们付出了努力,但还是做不到 弄清楚如何在 ASP.NET MVC 应用程序中处理它。

这是我们想要的:

  1. 在服务器端序列化/反序列化 DateTime 对象(最好使用 DateTimeKind.Utc)。
  2. 在客户端使用日期对象。在 UTC 中使用它。以某种方式格式化日期。

问题如下:

  1. 日期客户端对象始终使用最终用户的时区。 JSON.stringify(new Date()) 自动进行转换。

    JSON Stringify changes time of date because of UTC

    这个问题有点帮助,但我们需要记住在将日期发送到服务器之前改变日期。 我们还需要记住,一旦我们执行 new Date('2012-10-19T10:23:47.778Z') 就需要换类 我们知道 JSON 不识别日期,但如果有 JSON.parse 的模拟来解析日期会很好。

  2. 我们使用 Newton Json.net 来序列化/反序列化日期,但它在 DateTimeKind.Unspecified 中执行

问题:

Is there an elegant way to work with dates both on the server and client? We need it as a cross-cutting thing in the whole application.

更新:

我不得不把它说得更清楚。在我们的应用程序中,我们不需要考虑客户时区,因为我们只处理日期。

因此,如果服务器返回 2012-10-19T10:23:47.778Z',我们需要 Date 对象:

2012 年 10 月 19 日星期五 10:23:47 GMT+0300(加里宁格勒标准时间)

不是

2012 年 10 月 19 日星期五 13:23:47 GMT+0300(加里宁格勒标准时间)(日期偏移)

最佳答案

我强烈建议阅读以下帖子:

这导致您应该使用 ISO 日期的一般结论:

  • 在客户端使用现代浏览器.toJSON()方法
  • 通过在服务器端正确配置 JSON 序列化(JsonNetFormatterIsoDateTimeConverter)

关于javascript - 在 ASP.NET MVC - Javascript 应用程序中处理日期的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972632/

相关文章:

javascript - 无法使用 THREE.js 导入 Blender 2.79 JSON

python - 无法正确读取保存为 json 文件的字典

javascript - 如何从js数组中获取json对象

javascript - JSON 字符串化 : Tabs in objects are converted to\t causing issue while upper casing the result

javascript - 在onbeforeunload之前确认

javascript - 创建可抓取的跨域 javascript 小部件

javascript - 从 observableArray- knockoutjs 中删除

javascript - 将 node.js 缓冲区转换为 ref-struct 实例

javascript - Knockout JS 模板 HTML 无法正确呈现

c# - 在 MVC 中生成完整的 URL?