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.
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