Как мне конвертировать это время в формате JSON? - PullRequest
2 голосов
/ 03 января 2011

Следующая строка была возвращена из объекта ответа в формате JSON, и я хочу разобрать его во что-нибудь полезное: / Date (1283457528340) /

Как мне разобрать его с помощью JavaScript в нечто удобное для пользователя?

Ответы [ 3 ]

5 голосов
/ 03 января 2011

Это количество миллисекунд с начала эпохи.

Эта функция извлекает число из строки и возвращает объект Date, созданный из этого числа времени.

function dateFromStringWithTime(str) {
    var match;
    if (!(match = str.match(/\d+/))) {
        return false;
    }
    var date = new Date();
    date.setTime (match[0] - 0);
    return date;
}

Например,

console.log(dateFromStringWithTime('/Date(1283457528340)/').toString());

Вывод:

Fri Sep 03 2010 02:58:48 GMT+0700 (ICT)
1 голос
/ 03 января 2011

Зависит. Что представляет собой это значение? Предполагая UNIX-метку времени в миллисекундах (измените иначе), вы можете извлечь значение, затем применить parseInt и создать из него новый Date объект.

var str     = "/Date(1283457528340)/";
var matches = str.match(/([0-9]+)/);
var d       = parseInt(matches[0]);
var obj     = new Date(d);

После этого вы сможете использовать объект Date как обычно. Это не проверено и может содержать опечатки / ошибки, но идея должна быть обоснованной.

Редактировать: matches[1] -> matches[0]

0 голосов
/ 14 марта 2018
function parseJsonDate(jsonDate) {
    var epochMillis = jsonDate;
    var d = new Date(parseInt(epochMillis.substr(6)));
    return d;
}

Приведенный выше код даст вам дату, отформатированную так, чтобы это было полезно в данном представлении.

Параметр, переданный в функцию (jsonDate), является строкой, которую вы пытаетесь преобразовать, а строка return d возвращает форматированную дату.дата вам нужно.

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