为了账号安全,请及时绑定邮箱和手机立即绑定

如何解析JSON以在JavaScript中接收Date对象?

如何解析JSON以在JavaScript中接收Date对象?

holdtom 2019-08-08 15:07:16
如何解析JSON以在JavaScript中接收Date对象?我有一段JSON:\/Date(1293034567877)\/这是.NET代码的结果:var obj = DateTime.Now;var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();serializer.Serialize(obj).Dump();现在我面临的问题是如何在JavaScript中创建一个Date对象。我所能找到的是令人难以置信的正则表达式解决方案(许多包含错误)。很难相信没有优雅的解决方案,因为这完全在JavaScrip中,我的意思是JavaScript代码试图读取JSON(JavaScript Object Notation),这应该是一个JavaScript代码,而且此时它证明它不是因为JavaScript不能在这做得很好我也看到了一些我无法工作的eval解决方案(除了被指出为安全威胁)。难道没有办法优雅地做到这一点吗?
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

日期没有标准的JSON表示。你应该做@jAndy建议的事情而不是序列化一个人DateTime; 只需发送一个RFC 1123日期字符串ToString("r")或一个从Unix开始的纪元数字,或者您可以在JavaScript中使用的其他内容来构建一个Date


查看完整回答
反对 回复 2019-08-08
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

var date = new Date(parseInt(jsonDate.substr(6)));

正如他所说:substr函数取出“/ Date(”部分,而parseInt函数获取整数并忽略最后的“)/”。生成的数字将传递到Date构造函数中。

另一个选择是在ASP端简单地格式化您的信息,以便JavaScript可以轻松读取它。考虑为您的日期做这件事:

DateTime.Now()

哪个应该返回这样的格式:

7/22/2008 12:11:04 PM

如果你将它传递给这样的JavaScript Date构造函数:

var date = new Date('7/22/2008 12:11:04 PM');

变量date现在保存此值:

Tue Jul 22 2008 12:11:04 GMT-0700 (Pacific Daylight Time)

当然,您可以将此DateTime对象格式化为JS Date构造函数接受的任何类型的字符串/ int 。


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 596 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信