Qual é a melhor maneira de calcular a diferença de datas no JavaScript

Eu fazendo uma function em Javascript como o VisualDasic DateDiff.

Você dá duas datas e o intervalo de tempo de retorno (segundos, minutos, dias, etc …)

DateDiff(ByVal Interval As Microsoft.VisualBasic.DateInterval, _ ByVal Date1 As Date, ByVal Date2 As Date) as Long 

Então, qual é a melhor maneira de calcular a diferença de datas JavaScript?

Use o object Date assim:

 function DateDiff(var /*Date*/ date1, var /*Date*/ date2) { return date1.getTime() - date2.getTime(); } 

Isso retornará o número de milissegundos de diferença entre as duas datas. Convertê-lo em segundos, minutos, horas etc. não deve ser muito difícil.

Se você seguir este tutorial , uma maneira é usar:

 Date.getTime() 

Você encontrará aqui uma function completa de javascript , completa com a validação da data.

Dito isto, como comentou Rafi B. 5 anos depois, ” Obter diferença entre 2 datas em javascript? ” É mais preciso.

 var _MS_PER_DAY = 1000 * 60 * 60 * 24; // a and b are javascript Date objects function dateDiffInDays(a, b) { // Discard the time and time-zone information. var utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate()); var utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate()); return Math.floor((utc2 - utc1) / _MS_PER_DAY); }