gpt4 book ai didi

javascript - 如何在 MomentJS 中获取上个月、最近三个月的天数列表

转载 作者:行者123 更新时间:2023-11-30 14:12:55 29 4
gpt4 key购买 nike

使用 moment().subtract(1, 'days').format("YYYY-MM-DD") 我可以获得从当前日期算起的最后 x 天。那么我怎样才能得到上个月或过去三个月的所有天数呢?

最佳答案

如果我正确理解你的问题,这可以通过两个步骤来实现。首先计算标记上个月开始日期的时刻:

var prevMonth = moment().subtract(1, 'month').startOf('month');
var prevMonthDays = prevMonth.daysInMonth();

然后,遍历 0...prevMonthDays 范围,计算该范围内每天相对于上个月开始的日期 prevMonth:

  var prevMonthDay = prevMonth.clone().add(i, 'days').format("YYYY-MM-DD");

像这样的东西应该能达到你的要求:

// Get moment at start date of previous month
var prevMonth = moment().subtract(1, 'month').startOf('month');
var prevMonthDays = prevMonth.daysInMonth();

// Array to collect dates of previous month
var prevMonthDates = [];

for (var i = 0; i < prevMonthDays; i++) {

// Calculate moment based on start of previous month, plus day offset
var prevMonthDay = prevMonth.clone().add(i, 'days').format("YYYY-MM-DD");

prevMonthDates.push(prevMonthDay);
}

console.log(prevMonthDates)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>

希望这对您有所帮助!

更新

要计算从过去许多个月开始到当前月份开始的日期列表,上面的代码可以概括如下:

var monthsPast = 4;
var prevMonthDays = 0;
var prevMonth = moment();

// Iterate over number of months past that we want to collect dates for
for (var i = 0; i < monthsPast; i++) {

// Calculate the moment at the start of a previous month
var prevMonthStart = moment().subtract(i + 1, 'month').startOf('month');

// Increment total range to collect dates over, and update prevMonth
// to current calculated moment which represents oldest month start
prevMonthDays += prevMonthStart.daysInMonth();
prevMonth = prevMonthStart;
}

// Array to collect dates of previous month
var prevMonthDates = [];

for (var i = 0; i < prevMonthDays; i++) {

// Calculate moment based on start of previous month, plus day offset
var prevMonthDay = prevMonth.clone().add(i, 'days').format("YYYY-MM-DD");

prevMonthDates.push(prevMonthDay);
}

console.log(prevMonthDates)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>

关于javascript - 如何在 MomentJS 中获取上个月、最近三个月的天数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088255/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com