Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Промежуток времени между датами (https://javascript.ru/forum/misc/37338-promezhutok-vremeni-mezhdu-datami.html)

tsigel 22.04.2013 12:42

rgl,
Спасибо!

Octane 29.04.2013 21:59

рони,
function passed(d, m, g, dd, mm, gg) {
    //устанавливаем начальное время  и  будушее
    var a = new Date(g, m - 1, d, 0, 0, 0, 0),b = new Date(gg, mm-1, dd, 0, 0, 0, 0);
    //увеличивая начальное время на 1 месяц вперёд
    //подсчитываем количество полных месяцев до сегодня
    //если дата превышает число дней следующего месяца
    //то месяцем считаем весь следующий  месяц
    //5 января + 1 месяц = 5 февраля, но 31 января + 1 месяц = 28/29 февраля
    for (m = 0;; m++) {
        g = new Date(a.getFullYear(), a.getMonth() + 2, 0);
        g.getDate() > d && g.setDate(d);
        if (g > b) break;
        a = g
    }
    d = b - a;//оставшееся время за последний неполный месяц, если будет
    d = Math.round(d/864E5);//количество полных дней в этом времени
    g = Math.floor(m/12);//сколько полных лет в подсчитанных месяцах
    m = m % 12;//оставшиеся месяцы от полных лет
    return [g, m, d]
};
alert(passed('29','4','2013','28','11','2013'));
в апреле и ноябре по 30 дней, а в результате получаем 6 месяцев 30 дней…

рони 29.04.2013 22:33

Octane,
c 29 апреля по 29 ноября == 7 месяцев => 28 ноября == 6 месяцев 30 дней
то есть остался один день до полного месяца.
важны даты а не количества дней в месяцах -- если в следующем месяце такой даты нет например 31-- берётся последний день месяца.
31 мая по 30 июня == 1 месяц
30 мая по 30 июня тоже будет 1 месяц -- вот такой парадокс.

m~r.Nemo 02.12.2014 01:23

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

не получается скрыть значения лет, месяцев, дней, часов и минут если их значение меньше единицы,

и второе как сделать чтобы правильно показывало окончания слов, 1 год 2,3,4 года, 5-20 лет, 21 год и так везде год, месяц, день, час, минута, секунда?

рони 02.12.2014 01:37

m~r.Nemo,
на форуме всё это есть надо только поискать или в раздел работа

m~r.Nemo 02.12.2014 01:52

Рони, мож подкинешь сылочку на тему, где искать?

рони 02.12.2014 02:00

m~r.Nemo,
http://javascript.ru/forum/misc/4684...l-ostalos.html
http://javascript.ru/forum/misc/4082...6-dnejj-2.html
http://javascript.ru/forum/misc/4268...b-luchshe.html
http://javascript.ru/forum/misc/3516...tml#post231512

http://javascript.ru/forum/job/45625...remeni%5D.html


Часовой пояс GMT +3, время: 22:41.