Как прочитать дату, возвращенную JsonResult - PullRequest
0 голосов
/ 09 мая 2011

Я возвращаю DateTime как JsonResult. Тем не менее, у меня есть значение следующим образом:

"/ Date (1303070400000) /"

Как я могу установить значение JSon в формате даты в Javascript?

Ответы [ 5 ]

2 голосов
/ 10 мая 2011

Автоматическое преобразование даты с использованием $ .parseJSON

Я написал пользовательское расширение jQuery , которое автоматически преобразует даты .Net и ISO в фактические даты Javascript.

Это фактически расширяет существующую функцию $.parseJSON(), которая теперь может принимать дополнительный параметр:

$.parseJSON([String] json, [optional Boolean] convertDates);

Поэтому, когда вы хотите, чтобы ваши даты автоматически конвертировались, просто установите последний параметр на true. Хорошо, что он не будет мешать существующему коду, так как последний параметр является необязательным, и если он не указан, он работает так же, как работает оригинальная функция. Он конвертирует даты только тогда, когда вы указываете это.

Полностью прозрачное автоконвертация

Я лично использую слегка модифицированную версию того же расширения, которая работает наоборот. Он всегда конвертирует даты , если я не укажу это, поэтому я всегда получаю даты, даже когда внутренняя функциональность jQuery вызывает функцию .parseJSON (т.е. при вызове $.ajax с типом JSON и т. Д.). Если вам нужно, чтобы он работал так же, сообщите мне об этом или измените код расширения по вашему желанию. Обойти его довольно легко.

На сегодняшний день это наиболее прозрачное преобразование даты в jQuery .

1 голос
/ 12 марта 2015

Вы можете попробовать это

new Date(parseInt("/Date(1303070400000)/".replace("/Date(", "").replace(")/", ""), 10))
1 голос
/ 29 марта 2012

Я просто использую следующее:

var dateString = "/Date(1303070400000)/";
var dt = new Date(parseInt(dateString.substr(6)));
1 голос
/ 09 мая 2011

Я использую следующую функцию для этой цели

        function ConvertJsonDate(jsondate) {
        if (!jsondate)
            return "";

        var dt = new Date(+(jsondate).substr(6, 13));
        var m = dt.getMonth() + 1;
        var d = dt.getDate();
        if (m < 10)
            m = "0" + m;
        if (d < 10)
            d = "0" + d;
        return d + "-" + m + "-" + dt.getFullYear();
    }
0 голосов
/ 09 мая 2011

Библиотека json2.js, http://json.org и парсер JQuery JSON должны просто превратить это в значение Date для вас, когда JSON десериализован.

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