1

我正在使用 AngularJS 开发 MVC 4 项目。我的表格中有一些日期。当我使用$http.post()将数据发布到服务器时,我遇到了一个奇怪的问题。当我在服务器上发布像 2013 年 1 月 1 日这样的任何日期时,会在服务器上转换为 2012 年 12 月 31 日,这会在服务器发布上出现错误。我没有得到我的代码库中出了什么问题。

希望你能得到我的问题。

4

1 回答 1

0

在处理日期时,您必须注意它们是如何在前端和后端进行序列化的。没有标准。

鉴于您的描述和缺乏其他背景,我怀疑这是一个时区问题。

  • 你在本地开发吗?即浏览器和服务器是否在同一台机器上运行?
  • (如果不是)服务器使用的时区是什么?世界标准时间?

这是一篇详细介绍 JSON 日期序列化问题的帖子:“关于 JSON 日期的噩梦。另外,JSON.NET 和 ASP.NET Web API”

如果您不确定序列化发生了什么,您可以使用curl(*nix 或者可能是 cygwin 工具)或“Fiddler”之类的东西来查看原始响应。其他要做的事情是显式使用日期的toString()方法将日期序列化为字符串(并在服务器端更改,因为您正在使用.Net)来显式控制反序列化。

于 2013-09-17T07:07:48.413 回答