Узнайте, как найти разницу между двумя датами в JavaScript.

Мы узнаем о нахождении Number of Seconds, Number of Minutes, Number of hours, Number of days, Number of weeks, Number of months, Number of years между двумя датами.

Создадим две даты

let d1 = Date.now();
let d2 = new Date(2019,5,22).getTime(); //Jun 22 2019 in millisecond
console.log(d1); //1573527098946
console.log(d2); //1561141800000

Количество секунд между двумя датами.

1 second = 1000 milliseconds 

Теперь у нас есть две даты d1 и d2 в миллисекундах. Чтобы преобразовать milliseconds в seconds, мы можем разделить разницу между двумя датами в milliseconds на 1000.

function secondsDiff(d1, d2) {
   let millisecondDiff = d2 - d1;
   let secDiff = Math.floor( ( d2 - d1) / 1000 );
   return secDiff;
}

Количество минут между двумя датами.

1 minutes = 60 seconds

Теперь у нас есть метод, чтобы найти количество seconds между двумя датами, поэтому мы можем найти seconds различие, а затем разделить это на 60 и получить количество minutes между двумя датами.

function minutesDiff(d1, d2) {
     let seconds = secondsDiff(d1, d2);
     let minutesDiff = Math.floor( seconds / 60 );
     return minutesDiff;
}

Количество часов между двумя датами.

1 hour = 60 minutes

Теперь у нас есть метод, чтобы найти количество minutes между двумя датами, поэтому мы можем найти minutes различие, а затем разделить это на 60 и получить количество hours между двумя датами.

function hoursDiff(d1, d2) {
   let minutes = minutesDiff(d1, d2);
   let hoursDiff = Math.floor( minutes / 60 );
   return hoursDiff;
}

Количество дней между двумя датами.

1 day = 24 hours 

Теперь у нас есть метод, чтобы найти количество hours между двумя датами, чтобы мы могли найти разницу, а затем разделить это на 24 , и мы получим number of days между двумя датами.

function daysDiff(d1, d2) {
   let hours = hoursDiff(d1, d2);
   let daysDiff = Math.floor( hours / 24 );
   return daysDiff;
}

Количество недель между двумя свиданиями.

1 week = 7 days

Теперь у нас есть метод, чтобы найти количество days между двумя датами, чтобы мы могли найти разницу, а затем разделив это на 7, мы получим number of weeks между двумя датами.

function weeksDiff(d1, d2) {
   let days = daysDiff(d1, d2);
   let weeksDiff = Math.floor( days/ 7 );
   return weeksDiff;
}

Количество лет между двумя датами.

Чтобы найти количество лет между двумя датами, у нас есть встроенный метод getFullYear. Вычтите date2 год на date1 год, мы получим yearsDiff.

function yearsDiff(d1, d2) {
    let date1 = new Date(d1);
    let date2 = new Date(d2);
    let yearsDiff =  date2.getFullYear() - date1.getFullYear();
    return yearsDiff;
}

Количество месяцев между двумя датами.

1 month != 30 days 
Number of days in month is not same in all months , so we need to do it differently

Шаги:

  • Сначала нам нужно найти количество лет между двумя датами.
  • Умножьте количество лет между двумя датами на 12 (потому что на каждый год 12 месяцев).
  • Subtract номер месяца (июнь → 5) из second date с номером месяца first date

Определение количества месяцев между двумя датами

function monthsDiff(d1, d2) {
  let date1 = new Date(d1);
  let date2 = new Date(d2);
  let years = yearsDiff(d1, d2);
  let months =(years * 12) + (date2.getMonth() - date1.getMonth()) ;
  return months;
}

Спасибо за чтение 📖. Надеюсь, тебе это понравится. Если вы обнаружили опечатку или ошибку, отправьте мне личное сообщение 📝 спасибо 🙏 😊.

Следуй за мной JavaScript Jeep🚙💨.

Сделайте пожертвование здесь. 80% вашего пожертвования передается тому, кому нужна еда 🥘. Заранее благодарим.