我有幾個月的時間:
const monthsArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
我還有兩個日期:2021-09-07和2022-03-17。要獲取這些日期之間的月數,我使用函式:
function monthDiff(dateFrom, dateTo) {
return dateTo.getMonth() - dateFrom.getMonth() 12 * (dateTo.getFullYear() - dateFrom.getFullYear());
}
如何顯示monthsArr這兩個日期之間陣列中的所有月份?提前感謝您的幫助。
uj5u.com熱心網友回復:
您可以使用Array().fill()生成完整(中間)年份的所有月份,并slice分別提取第一年或去年的月份。然后將這些部分結果展平為一個陣列:
const monthsArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
function monthsBetween(dateFrom, dateTo) {
let length = dateTo.getFullYear() - dateFrom.getFullYear() - 1;
return length < 0
? monthsArr.slice(dateFrom.getMonth(), dateTo.getMonth() 1)
: [
monthsArr.slice(dateFrom.getMonth()),
Array(length).fill(monthsArr),
monthsArr.slice(0, dateTo.getMonth() 1)
].flat(2);
}
let dateFrom = new Date("2021-09-07");
let dateTo = new Date("2022-03-17");
console.log(monthsBetween(dateFrom, dateTo));
uj5u.com熱心網友回復:
您可能會發現使用實用程式庫很有用,例如date-fns( https://date-fns.org/ ),更具體地說是sub函式 ( https://date-fns.org/v2.28.0/docs/sub )
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/463771.html
標籤:javascript 算法 日期
上一篇:Numpy陣列逆并加入
