Javascript Date и JSON DateTime - PullRequest
       31

Javascript Date и JSON DateTime

1 голос
/ 30 октября 2009

У меня проблема с функцией Jquery getJSON, URL-адрес действия не запускается, потому что один из параметров, который я передаю, является датой javascript, но действие ожидает c # DateTime.

Можно ли отформатировать дату Javascript, чтобы сделать ее совместимой с c # DateTime?

Ответы [ 4 ]

3 голосов
/ 30 октября 2009

Я бы предложил использовать библиотеку Datejs (http://www.datejs.com/). Из моего ограниченного опыта работы с ней это просто фантастика.

2 голосов
/ 12 октября 2012

Если вы пытаетесь найти решение для получения даты Javascript из представления JSON (/ Date (1350035703817) /), вы можете использовать эту функцию :

function parseJsonDate(jsonDate) {
    var offset = new Date().getTimezoneOffset() * 60000;
    var parts = /\/Date\((-?\d+)([+-]\d{2})?(\d{2})?.*/.exec(jsonDate);

    if (parts[2] == undefined) 
      parts[2] = 0;

    if (parts[3] == undefined) 
      parts[3] = 0;

    return new Date(+parts[1] + offset + parts[2]*3600000 + parts[3]*60000);
};

работал для меня как шарм.

2 голосов
/ 03 ноября 2009

Используйте эту функцию из документации Mozilla Date :

/* use a function for the exact format desired... */
function ISODateString(d){
 function pad(n){return n<10 ? '0'+n : n}
 return d.getUTCFullYear()+'-'
      + pad(d.getUTCMonth()+1)+'-'
      + pad(d.getUTCDate())+'T'
      + pad(d.getUTCHours())+':'
      + pad(d.getUTCMinutes())+':'
      + pad(d.getUTCSeconds())+'Z'
}

.NET не будет иметь проблем с обработкой даты в формате ISO. Вы можете использовать DateTime.Parse(...) для обработки строки в формате ISO.

1 голос
/ 12 февраля 2013

Я использовал эту функцию, короче, чем выше.

function ParseJsonDate(dateString) {
    var milli = dateString.replace(/\/Date\((-?\d+)\)\//, '$1');
    var date = new Date(parseInt(milli));
    return date;
}

Также нашел способ конвертировать их обратно:

function ToJsonDate(date) {
    return '\/Date(' + date.getTime() + ')\/';
}
...