[英]Moment.js how do you get the current Quarter and previous three quarters along with year?
[英]How to generate an array of quarter numbers of a year along with year number based on current date using moment.js in node js?
我想使用節點 js 中的當前時間戳創建一個季度數和年份數的數組。 例如,當前季度是 Q1,年份是 2020。現在,我想創建一個如下所示的數組。
quarters = ['Q2-2019','Q3-2019','Q4-2019','Q1-2020']
在上面的數組中, Q1
是2020
,其余 3 個是2019
基本上我的要求是創建季度數組,包括當前季度數和過去 3 個季度數以及年份數。
現在,通過使用@Santhosh S 給出的以下代碼,我得到了一個類似['Q2','Q3','Q4','Q1']
的數組。代碼是,
let quarters = [ 0, 1, 2, 3 ].map(i =>
moment().subtract(i, 'Q').format('[Q]Q')
);
console.log(quarters);
反正有生成這個數組嗎?
您可以獲得實際月份並為下一個季度和季度計數添加一個,並獲得剩余的四個以映射季度。
var month = new Date().getMonth(), quarters = ['Q1', 'Q2', 'Q3', 'Q4'].map((_, i, a) => a[Math.floor(month / 3 + 1 + i) % 4]); console.log(quarters);
使用moment.js
const moment = require('moment');
let out = Array(4).fill().map((_, i) => 'Q' + moment().subtract(9-(3*i), 'months').quarter())
console.log(out)
使用moment().quarter();
獲取當前季度。
編輯:使用減法和格式到四分之一。 下面的示例代碼
let format = '[Q]Q'; let quarters = [ moment().format(format), moment().subtract(1, 'Q').format(format), moment().subtract(2, 'Q').format(format), moment().subtract(3, 'Q').format(format) ]; console.log(quarters);
<script src="https://momentjs.com/downloads/moment.min.js"></script>
或者更簡潔的版本:
let quarters = [ 0, 1, 2, 3 ].map(i => moment().subtract(i, 'Q').format('[Q]Q') ); console.log(quarters);
<script src="https://momentjs.com/downloads/moment.min.js"></script>
請查看 MomentJs Quarters:這里
像moment().quarter(Number);
基於當天並創建您的 Q 數組。
嘗試以下
function getQuarter(date) {
// `getMonth` returns an int from 0 to 11.
return Math.floor(date.getMonth() / 3) + 1;
}
function buildQuartersList(currentQuarter) {
// `fill` is needed, otherwise, `map` won't run.
const quartersList = new Array(4).fill().map((element, index) => {
const quarter = ((index + currentQuarter - 1) % 4) + 1;
return `Q${quarter}`;
});
return quartersList.reverse();
}
function getQuartersList(date) {
const currentQuarter = getQuarter(date);
return buildQuartersList(currentQuarter);
}
console.log(getQuartersList(new Date()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.