在Moment.js中,您如何获得当前的财务季度?

Tol*_*oli 18 javascript date momentjs

是否有简单/内置的方法来计算当前的财务季度?

例如:

  • 1月至3月:1日
  • 4月至7月:第二天
  • 7月至9月:第3天
  • 十月至十二月:第四

小智 42

现在支持这一点.一样容易:

moment('2014-12-01').utc().quarter() //outputs 4
moment().quarter(); //outputs current quarter ie. 2
Run Code Online (Sandbox Code Playgroud)

  • 对于那些希望获得实际日期的人:http://stackoverflow.com/review/suggested-edits/14927736 (7认同)
  • 这一刻真是太奇妙了 (3认同)

And*_*ata 15

使用版本2.14.1+,您可以执行以下操作:

moment().quarter() 返回当前的季度数:1,2,3,4.

moment().quarter(moment().quarter()).startOf('quarter');
Run Code Online (Sandbox Code Playgroud)

返回当前季度,日期设置为季度开始日期.

moment().quarter(moment().quarter()).startOf('quarter');
Run Code Online (Sandbox Code Playgroud)

返回当前季度,日期设置为季度结束日期.

您还可以定义一个函数,该函数将相应的四分之一数作为参数(1,2,3,4),并返回一个包含该季度的开始和结束日期的对象.

function getQuarterRange(quarter) {

  const start = moment().quarter(quarter).startOf('quarter');

  const end = moment().quarter(quarter).endOf('quarter');

  return {start, end};
}
Run Code Online (Sandbox Code Playgroud)


Nis*_*ani 6

使用这个简单的代码获得基于 1 月和 4 月的所有季度

演示

代码 :

 // startMonth should be january or april

  function setQuarter(startMonth) {
    var obj = {};
    if(startMonth=='january'){

        obj.quarter1 = {start:moment().month(0).startOf('month'),end:moment().month(2).endOf('month')}
        obj.quarter2 = {start:moment().month(3).startOf('month'),end:moment().month(5).endOf('month')}
        obj.quarter3 = {start:moment().month(6).startOf('month'),end:moment().month(8).endOf('month')}
        obj.quarter4 = {start:moment().month(9).startOf('month'),end:moment().month(11).endOf('month')}
        console.log(obj);
        return obj;
    }
    else if(startMonth=='april'){

        obj.quarter1 = {start:moment().month(3).startOf('month'),end:moment().month(5).endOf('month')}
        obj.quarter2 = {start:moment().month(6).startOf('month'),end:moment().month(8).endOf('month')}
        obj.quarter3 = {start:moment().month(9).startOf('month'),end:moment().month(11).endOf('month')}
        obj.quarter4 = {start:moment().month(0).startOf('month').add('years',1),end:moment().month(2).endOf('month').add('years',1)}
        console.log(obj);
        return obj;
    }
}

 setQuarter('april');
Run Code Online (Sandbox Code Playgroud)

小提琴


小智 6

开始日期

moment().quarter(moment().quarter()).startOf('quarter');
Run Code Online (Sandbox Code Playgroud)

将返回当前季度,并将日期设置为季度开始日期。

moment("2019", "YYYY").quarter(4).startOf('quarter');
Run Code Online (Sandbox Code Playgroud)

将返回“2019”年第四季度的开始日期。

moment().startOf('quarter');
Run Code Online (Sandbox Code Playgroud)

将返回当年当前季度的开始日期。

结束日期

moment().quarter(moment().quarter()).endOf('quarter');
Run Code Online (Sandbox Code Playgroud)

将返回当前季度,并将日期设置为季度结束日期。

moment("2019", "YYYY").quarter(4).endOf('quarter');
Run Code Online (Sandbox Code Playgroud)

将返回“2019”年第四季度的结束日期。

moment().endOf('quarter');
Run Code Online (Sandbox Code Playgroud)

将返回当年当前季度的结束日期。