Moment JS数组的月份
Moment JS array of months
我正在尝试在选定的季度(当前和上一季度)内创建月份数组。
到目前为止,我的代码遵循 this 页面的建议。
var dataQuarter = Array.apply(null, Array(3)).map(function (_, i) {
return moment(i, 'e').startOf('quarter').month(i).format('LL');
})
var dataQuarterLast = Array.apply(null, Array(3)).map(function (_, i) {
return moment(i, 'e').startOf('quarter').subtract(1, 'quarter').month(i).format('LL');
})
这并没有给我所希望的数组中的正确值。
非常感谢任何正确方向的帮助。
更新:
console.log 对于两个变量说:
Array(3) [ "January 1, 2020", "February 1, 2020", "March 1, 2020" ]
Array(3) [ "January 1, 2020", "February 1, 2020", "March 1, 2020" ]
您可以创建一个接受日期和季度的自定义函数,以从给定日期开始对年份执行季度操作。每个季度有三个月,我们将它们映射到一个数组,从该季度的第一个月开始,并递增月份值,直到我们得到以下两个。它的一个例子如下所示:
const getMonthsPerQuarter = (date, quarter) => {
return [0, 1, 2].map(value =>
date.quarter(quarter)
.startOf('quarter')
.add(value, 'months')
.format('LL')
);
};
const date = moment('2020-02-27'); // Change the date to any date you want.
const currentQuarter = date.quarter(); // Quarter will be a number between 1 and 4.
const lastQuarter = 4;
const currentQuarterMonths = getMonthsPerQuarter(date, currentQuarter);
const lastQuarterMonths = getMonthsPerQuarter(date, lastQuarter);
console.log(currentQuarterMonths);
console.log(lastQuarterMonths);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
如果您 运行 代码段,您将看到预期的输出。如果您只想在输出数组中使用月份名称,请将 'LL'
替换为 'MMMM'
.
我正在尝试在选定的季度(当前和上一季度)内创建月份数组。 到目前为止,我的代码遵循 this 页面的建议。
var dataQuarter = Array.apply(null, Array(3)).map(function (_, i) {
return moment(i, 'e').startOf('quarter').month(i).format('LL');
})
var dataQuarterLast = Array.apply(null, Array(3)).map(function (_, i) {
return moment(i, 'e').startOf('quarter').subtract(1, 'quarter').month(i).format('LL');
})
这并没有给我所希望的数组中的正确值。
非常感谢任何正确方向的帮助。
更新:
console.log 对于两个变量说:
Array(3) [ "January 1, 2020", "February 1, 2020", "March 1, 2020" ]
Array(3) [ "January 1, 2020", "February 1, 2020", "March 1, 2020" ]
您可以创建一个接受日期和季度的自定义函数,以从给定日期开始对年份执行季度操作。每个季度有三个月,我们将它们映射到一个数组,从该季度的第一个月开始,并递增月份值,直到我们得到以下两个。它的一个例子如下所示:
const getMonthsPerQuarter = (date, quarter) => {
return [0, 1, 2].map(value =>
date.quarter(quarter)
.startOf('quarter')
.add(value, 'months')
.format('LL')
);
};
const date = moment('2020-02-27'); // Change the date to any date you want.
const currentQuarter = date.quarter(); // Quarter will be a number between 1 and 4.
const lastQuarter = 4;
const currentQuarterMonths = getMonthsPerQuarter(date, currentQuarter);
const lastQuarterMonths = getMonthsPerQuarter(date, lastQuarter);
console.log(currentQuarterMonths);
console.log(lastQuarterMonths);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
如果您 运行 代码段,您将看到预期的输出。如果您只想在输出数组中使用月份名称,请将 'LL'
替换为 'MMMM'
.