Date

Created for humanreviews.me

by levchenko_d

HTML

12.13.2013 15:45

JavaScript

var Dates = (function () {

    function ago(when, date) {
        var x;
        var month = ['января', 'февраля', 'марта', 'апреля', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
        var ss = ['секунд', 'секунды', 'секунду'];
        var ms = ['минут', 'минуты', 'минуту'];
        var mins =  date.getMinutes().toString().length > 1 ? date.getMinutes() : '0' + date.getMinutes();
        var hrs =  date.getHours().toString().length > 1 ? date.getHours() : '0' + date.getHours();
        
        function parseEnd(sec, arr) {

            var v = sec < 20 ? sec : parseInt(sec.toString().slice(sec.toString().length - 1));
            return v < 1 && arr[0] || v > 0 && v < 2 && arr[2] || v > 1 && v < 5 && arr[1] || v > 4 && v < 21 && arr[0] || v > 20 && v < 22 && arr[2];

        };

        switch (when[0]) {
            case 's':
                x = when[1] < 10 && 'только что' || when[1] + ' ' + parseEnd(when[1], ss) + ' назад';
                break
            case 'm':
                x = when[1] + ' ' + parseEnd(when[1], ms) + ' назад';
                break
            case 'h':
                x = when[1] < 2 && '1 час назад' || when[1] < 5 && when[1] + ' часа назад' || when[1] < 24 && 'сегодня в ' + hrs + ':' + mins;
                break
            case 'd':
                x = when[1] < 2 && 'вчера в ' + hrs + ':' + mins || when[1] < 5 && when[1] + ' дня назад в ' + hrs + ':' + mins || (new Date().getFullYear() - date.getFullYear()) < 1 && date.getDate() + ' ' + month[date.getMonth()] + ' в ' + hrs + ':' + mins || date.getDate() + ' ' + month[date.getMonth() - 1] + ' ' + date.getFullYear() + ' в ' + hrs + ':' + mins;
                break

        }
        return x;
    }

    function handle(time) {

        var ms = 1000 * 60 * 60 * 24;
        var date = new Date(time);
        var now = new Date();
        var diff = function (date, now) {
            var date = Date.UTC(date.getFullYear(), date.getMonth(),...