Преобразование «2011-06-23T13: 20: 12 + 0000» во время назад - PullRequest
1 голос
/ 23 июня 2011

Каков «лучший» (и самый быстрый) способ преобразования даты 2011-06-23T13:20:12+0000 в следующие форматы?

45 minutes ago
4 hours ago
2 days ago
5 weeks ago

Ответы [ 3 ]

6 голосов
/ 23 июня 2011

Взгляните на jQuery.timeago , возможно, это то, что вы ищете.

4 голосов
/ 23 июня 2011

Джон Ресиг на спасение

0 голосов
/ 23 июня 2011

Я думаю, что это будет достаточно быстро:

function daysAgo(dt) {
    var diff = Math.floor((new Date() - dt) / 86400000);
    if (diff === 1)       
    {
        return diff + ' day ago';
    } else {
        return diff + ' days ago';
    }
}

function minsAgo(dt) {
    var diff = Math.floor((new Date() - dt) / 60000);
    if (diff === 1)       
    {
        return diff + ' minute ago';
    } else {
        return diff + ' minutes ago';
    }
}

var then = new Date('2011-06-23T13:20:12+0000');
document.write(then + '<br />');
document.write(daysAgo(then) + '<br />');
document.write(minsAgo(then));

Вы можете написать другие функции на недели и часы аналогично.Кроме того, это приблизительные значения из-за вызова Math.floor, но я подумал, что этого будет достаточно.

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