Подтвердить что ты не робот

JavaScript - Получить минуты между двумя датами

Если у меня есть две даты, как я могу использовать JavaScript, чтобы получить разницу между двумя датами в минутах?

4b9b3361

Ответ 1

Вы можете проверить этот код:

var today = new Date();
var Christmas = new Date("12-25-2012");
var diffMs = (Christmas - today); // milliseconds between now & Christmas
var diffDays = Math.floor(diffMs / 86400000); // days
var diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours
var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
alert(diffDays + " days, " + diffHrs + " hours, " + diffMins + " minutes until Christmas 2009 =)");

Ответ 2

Вычитание 2 объектов Date дает вам разницу в миллисекундах, например:

var diff = Math.abs(new Date('2011/10/09 12:00') - new Date('2011/10/09 00:00'));

Math.abs используется для использования абсолютной разности (поэтому new Date('2011/10/09 00:00') - new Date('2011/10/09 12:00') дает тот же результат).

Разделение результата на 1000 дает вам количество секунд. Разделение на 60 дает вам количество минут. Для округления до нескольких минут используйте Math.floor или Math.ceil:

var minutes = Math.floor((diff/1000)/60);

В этом примере результат будет равен 720

Ответ 3

var startTime = new Date('2012/10/09 12:00'); 
var endTime = new Date('2013/10/09 12:00');
var difference = endTime.getTime() - startTime.getTime(); // This will give difference in milliseconds
var resultInMinutes = Math.round(difference / 60000);

Ответ 4

Простая функция для выполнения этого расчета:

function getMinutesBetweenDates(startDate, endDate) {
    var diff = endDate.getTime() - startDate.getTime();
    return (diff / 60000);
}

Ответ 5

Это должно показать разницу между двумя датами в минутах.

const currDate = new Date('Tue Feb 13 2018 13:04:58 GMT+0200 (EET)')
const oldDate  = new Date('Tue Feb 13 2018 12:00:58 GMT+0200 (EET)')

(currDate - oldDate) / 60000 # 64.0026

Ответ 6

Для тех, кто любит работать с небольшими числами

const today = new Date();
const endDate = new Date(startDate.setDate(startDate.getDate() + 7));
const days = parseInt((endDate - today) / (1000 * 60 * 60 * 24));
const hours = parseInt(Math.abs(endDate - today) / (1000 * 60 * 60) % 24);
const minutes = parseInt(Math.abs(endDate.getTime() - today.getTime()) / (1000 * 60) % 60);
const seconds = parseInt(Math.abs(endDate.getTime() - today.getTime()) / (1000) % 60); 

Ответ 7

Эта проблема легко решается с помощью момента. js, как этот пример:

var difference = mostDate.diff(minorDate, "minutes");

Второй параметр может быть изменен для других параметров, см. документацию moment.js.

Например: "дни", "часы", "минуты" и т.д.

http://momentjs.com/docs/

CDN для moment.js доступен здесь:

https://cdnjs.com/libraries/moment.js

Спасибо.

EDIT:

mostDate и minorDate должны быть типом момента.

Ответ 8

Вот немного веселья, когда я решал нечто подобное в узле.

function formatTimeDiff(date1, date2) {
  return Array(3)
    .fill([3600, date1.getTime() - date2.getTime()])
    .map((v, i, a) => {
      a[i+1] = [a[i][0]/60, ((v[1] / (v[0] * 1000)) % 1) * (v[0] * 1000)];
      return '0${Math.floor(v[1] / (v[0] * 1000))}'.slice(-2);
    }).join(':');
}

const millis = 1000;
const utcEnd = new Date(1541424202 * millis);
const utcStart = new Date(1541389579 * millis);
const utcDiff = formatTimeDiff(utcEnd, utcStart);

console.log('Dates:
  Start   : ${utcStart}
  Stop    : ${utcEnd}
  Elapsed : ${utcDiff}
  ');

/*
Outputs:

Dates:
  Start   : Mon Nov 05 2018 03:46:19 GMT+0000 (UTC)
  Stop    : Mon Nov 05 2018 13:23:22 GMT+0000 (UTC)
  Elapsed : 09:37:02
*/

Вы можете увидеть это в действии на https://repl.it/@GioCirque/TimeSpan-Formatting