Різниця між двома датами

ПублікаціїДата і час
Розглянемо обчислення різниці між двома датами за допомогою Javascript.

Визначаємо кількість днів між двома значеннями мілісекунд з метода Date.getTime() і ділимо на кілікість мілісекунд в день:

Функція getDays приймає два параметри date1 і date2 у форматі рядок або об`єкт Date та повертає різницю між датами в днях.

Кількість днів отримуємо вирахувавши різницю мілісекунд між датами і поділивши результат на 86400000 (кількість мілісекунд в 1 добі).

function getDays(date1, date2){ var d1, d2; if(typeof date1=='string') d1=new Date(date1); else d1=new Date(date1.getTime()); if(typeof date2=='string') d2=new Date(date2); else d2=new Date(date2.getTime()); return (Math.abs(d2.getTime()-d1.getTime())/86400000); } alert( 'різниця між датами днів: '+getDays('2020-02-22','2020-02-25') );
Визначаємо різницю між двома датами підрахунком років, місяців, днів.

Якщо параметр date2 не вказано тоді це сьогоднішня дата.

function differenceDate(date1, date2){ if(date2==undefined)date2=new Date(); var d1=new Date(typeof date1=='string'?date1:date1.getTime()), d2=new Date(typeof date2=='string'?date2:date2.getTime()); var Y,M,D; M=0; var d=new Date(d1.getTime()); while(true){ d.setMonth(d.getMonth()+1); if(d.getTime()<d2.getTime()) M++; else{ d.setMonth(d.getMonth()-1); break; } } Y=parseInt(M/12); M=M-(Y*12); D=parseInt(Math.abs(d2.getTime()-d.getTime())/86400000); return {year:Y, month:M, date:D, toString:function(){return this.year+' років, '+this.month+' місяців, '+this.date+' днів';}}; } alert( 'з 2016-07-17 до сьогодні: '+differenceDate('2016-07-17') );
Визначаємо різницю між двома датами і часом підрахунком років, місяців, днів, годин, хвилин, секунд.

Якщо параметр date2 не вказано тоді це сьогоднішня дата і час.

function differenceDateTime(date1, date2){ if(date2==undefined)date2=new Date(); var d1=new Date(typeof date1=='string'?date1:date1.getTime()), d2=new Date(typeof date2=='string'?date2:date2.getTime()); var Y,M,D,ms,h,m,s; M=0; var d=new Date(d1.getTime()); while(true){ d.setMonth(d.getMonth()+1); if(d.getTime()<d2.getTime()) M++; else{ d.setMonth(d.getMonth()-1); break; } } Y=parseInt(M/12); M=M-(Y*12); ms=d2.getTime()-d.getTime(); D=parseInt(ms/86400000); ms=ms-(D*86400000); h=parseInt(ms/3600000); ms=ms-(h*3600000); m=parseInt(ms/60000); ms=ms-(m*60000); s=parseInt(ms/1000); return {year:Y, month:M, date:D, hour:h, minute:m, second: s, toString:function(){return this.year+' років, '+this.month+' місяців, '+this.date+' днів, '+this.hour+' годин, '+this.minute+' хвилин, '+this.second+' секунди';}}; } alert( 'різниця: '+differenceDateTime('2016-07-17 10:25:10', '2020-03-07 01:25:33') );
Адмін 2020-03-07 01:25:33

Тільки зареєстровані користувачі можуть писати коментарі.