[英]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.