在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js 如何計算兩個日期相差幾個月零幾天?

js 如何計算兩個日期相差幾個月零幾天?

比如 4.1日---8.2日 就是 4 個月零 2 天

回答
編輯回答
老梗

一種是生成兩個Date來相減

function date_minus(date_str1, date_str2) {
    var date1 = new Date(date_str1),
        date2 = new Date(date_str2);
    return (date2 - date1) / (60 * 60 * 24 * 1000); // 每天有60 * 60 * 24 * 1000毫秒
}

另一種就是直接寫個減法

function date_minus(date1_m, date1_d, date2_m, date2_d) {
    var mon_days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],// 沒考慮閏年
        day_minus = date2_d - date1_d,
        mon_minus = 0;
    for (var i = date2_m; i < date1_m; ++i) {
        mon_minus += mon_days[i];
    }
    return mon_minus + day_minus;
}
2018年4月3日 22:42
編輯回答
舊螢火

日期轉(zhuǎn)化成時間戳再相減計算。這個是計算天數(shù)差的。

const getDiffDay = (a, b) => {
    const diffTime = Math.abs(new Date(`2018-${a}`).getTime() - new Date(`2018-$`).getTime())
    return diffTime/1000/60/60/24
}
getDiffDay('4-1', '8-2')
2017年11月22日 08:18
編輯回答
伴謊

難道不是4個月零1天?

function parseDate(date) {
  return date.split('-').map(item => Number(item));
}
const date1 = parseDate('2018-08-02');
const date2 = parseDate('2018-04-01');
const diff = [0, 0, 0].map((value, index) => date1[index] - date2[index]);

console.log(`${diff[0] * 12 + diff[1]}月${diff[2]}天`);
2018年5月29日 00:57
編輯回答
真難過

首先兩個日期之間相差幾個月這個概念本身就不完全正確,這里一個月按照三十天算還是三是一天算,計算兩個日期之間相差多少天才比較實際。
其次由于閏年的存在,二月份的天數(shù)是不固定的,也不好直接計算。
如果不考慮閏年的話,計算兩個日期之間差幾天倒是很好算,
先設(shè)置一個數(shù)組表示每個月的一號是這一年的第幾天,例如一月一號是第一天,二月一號是第三十二天,三月一號是第六十天(不考慮閏年),記這個數(shù)組是days。
然后x月y日就是一年的第days[x] + y - 1天,
然后相減就是差幾天了

2017年4月17日 14:33