Как получить разницу в Месяце, Дате, Часе, Минуте и Се c между двумя датами? - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь получить разницу в месяце, дате, часе, минуте и секунде между двумя датами в JavaScript.

Я знаю, что мы можем получить разницу в датах в миллисекундах, и уже пробовал следующим образом :

function showtime() {
    var date1 = new Date('7/14/2010 6:21:00');
    var date2 = new Date('12/15/2010 7:25:10');
    var diffTime = parseInt(date2 - date1);
    var diffMonth = Math.floor(diffTime / (1000 * 60 * 60 * 24 * 30));
    var diffDays = Math.floor((diffTime / (1000 * 60 * 60 * 24)) - (diffMonth * 30));
    var diffHour = Math.floor((diffTime / (1000 * 60 * 60)) - (diffMonth * 30 * 24) - (diffDays * 24))
    var diffMinute = Math.floor((diffTime / (1000 * 60)) - (diffMonth * 60 * 30 * 24) - (diffDays * 60 * 24) - (diffHour * 60))
    var diffSec = Math.floor((diffTime / (1000)) - (diffMonth * 60 * 60 * 30 * 24) - (diffDays * 60 * 60 * 24) - (diffHour * 60 * 60) - (diffMinute * 60))

    var result = (diffMonth + ' Month ' + diffDays + ' Days ' + diffHour + ' Hours ' + diffMinute + ' Minutes ' + diffSec + ' Sec' );

    return result;
}

Но указанная выше функция не может вычислить точные дни и месяцы. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 29 февраля 2020

Вы предполагаете, что во всех месяцах есть только 30 дней, а это не так (в diffMonth используется множитель 30 дней) - это изменит количество дней

...