2

使用非常好的signalR库,我有一个广播消息,它将一个类型的对象发送ChangeDetail到客户端浏览器。发送的对象包含一个 DateTime 属性:

var change = new ChangeDetail();
change.TimeOfChange = DateTime.Now();

当我将它发送给客户端时,SignalR 负责将对象序列化为 JSON,但是在我检查对象时,在客户端 JavaScript 代码中,它看起来像这样:

console.log (change.TimeOfChange); --> "/Date(1327332563969)/"

我如何将它恢复到 js Date 对象中?我可以编写一个正则表达式来获取数字,以及带有该数字的 Date.parse,但这似乎有点麻烦......?

4

1 回答 1

3

I have typically added the following prototype extension to String.

String.prototype.toDate = function () {
  "use strict";

  var match = /\/Date\((\d{13})\)\//.exec(this);

  return match === null ? null : new Date(parseInt(match[1], 10));
};

Basically you can go change.TimeOfChange.toDate() to get back an actual date object

于 2012-01-23T16:34:08.610 回答