"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso calcular com precisão a diferença entre duas datas em anos, meses e dias usando JavaScript?

Como posso calcular com precisão a diferença entre duas datas em anos, meses e dias usando JavaScript?

Publicado em 11/12/2024
Navegar:244

How Can I Accurately Calculate the Difference Between Two Dates in Years, Months, and Days Using JavaScript?

Determinando diferenças de datas em anos, meses e dias em JavaScript

Determinando a diferença entre duas datas em anos, meses e dias pode ser um desafio em JavaScript devido a inconsistências em soluções que fornecem diferenças apenas em uma unidade (anos, meses ou dias) ou imprecisões em cálculos.

Aqui está uma solução mais abrangente que leva em consideração anos comuns e bissextos, bem como a diferença exata de dias entre meses:

today = new Date();
past = new Date(2010, 05, 01); // Equivalent to June 1, 2010

function calcDate(date1, date2) {
  // Calculate the difference in milliseconds
  var diff = Math.floor(date1.getTime() - date2.getTime());

  // Convert milliseconds to days
  var day = 1000 * 60 * 60 * 24;
  var days = Math.floor(diff / day);

  // Calculate months and years from days
  var months = Math.floor(days / 31);
  var years = Math.floor(months / 12);

  // Format the message
  var message = date2.toDateString();
  message  = " was ";
  message  = days   " days ";
  message  = months   " months ";
  message  = years   " years ago \n";

  return message;
}

console.log(calcDate(today, past));
// Output: Tue Jun 01 2010 was 1143 days 36 months 3 years ago

Esta solução calcula com precisão a diferença entre duas datas, convertendo a diferença em milissegundos em dias e, em seguida, derivando ainda mais os meses e anos do total de dias.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3