Синтаксический анализ DateTime, сериализованный из signalR - PullRequest
2 голосов
/ 23 января 2012

Используя очень красивую библиотеку signalR , у меня есть широковещательное сообщение, которое отправляет объект типа ChangeDetail в клиентские браузеры.Отправляемый объект включает свойство DateTime:

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

Когда я отправляю это клиентам, SignalR заботится о сериализации объектов в JSON, но в коде JavaScript клиента, когда я проверяю объект, онвыглядит так:

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

Как мне вернуть это обратно в объект js Date?Я мог бы написать регулярное выражение, чтобы получить число, и Date.parse с этим числом, но это кажется немного громоздким ...?

1 Ответ

3 голосов
/ 23 января 2012

Я обычно добавляю следующее расширение прототипа в String.

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

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

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

По сути, вы можете пойти change.TimeOfChange.toDate(), чтобы вернуть объект фактической даты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...