簡體   English   中英

如何從日期中查找經過的年數? javascript

[英]How to find elapsed years from a date? javascript

我有 JavaScript 代碼來查找從現在到某個日期之間的年份,但它給了我 3.916 而不是 4.001ish。 為什么會掉這么多? 數學看起來不錯,其他一切看起來都不錯……謝謝!

 const year = 1000*60*60*24*365.25; var now = new Date(); var bDay = new Date(2018, 12, 22); var elapsedT = now - bDay; let years = elapsedT / year; document.getElementById("demo").innerHTML = years;
 <p>Calculate the number of years since Wedding:</p> <p id="demo"></p>

它不是 4,因為你的bDay日期實際上是 2019 年 1 月 22 日。

這是因為月份是從 0 開始索引的,所以12實際上表示下一年的一月。 十二月將是11

 const year = 31540000000; var now = new Date(); var bDay = new Date(2018, 11, 22); var elapsedT = now - bDay; let years = elapsedT / year; console.log(years)

雖然使用getFullYear來計算年份差異會簡單得多:

 const year = 31540000000; var now = new Date(); var bDay = new Date(2018, 11, 22); let years = now.getFullYear() - bDay.getFullYear() console.log(years)

bDay日期中的月份是 0 索引的,因此十二月表示為 11 而不是 12。年份常數也不准確,因為它表示一個“熱帶年”中的毫秒數,比日歷略短年(365.24 天)。

這應該工作

// set the full year
const year = 1000*60*60*24*365;
const now = new Date();

// fixes the month and year
const bDay = new Date(2018, 11, 22); 

const elpsT = now - bDay;
// display up to 3 decimal places
const years = (elpsT / year).toFixed(3);

document.getElementById("demo").innerHTML = years; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM