有没有一种方法可以根据日期范围找出年份和季度。

我们将11月作为开始日期,将10月作为财政年度的结束日期。

例如:上一个11月至下一个10月被视为一个财政年度。

2014年11月1日-2015年10月31日->被视为一个财政年度

10月31日之后的任何记录都将进入下一个财政年度。

我们还需要找到以下宿舍

第一季度=十一月,十二月和一月
第二季度=二月,三月,四月
第三季度=五月,六月,七月
第4季度=八月,九月,十月
moment('2014-12-01').utc().quarter()->返回1,将Jan作为会计年度的开始日期。

但这被认为是第一季度。

-代码-

函数getQuarter(){
var obj = {};

 // Set Quarters form nov
 obj.quarter1 = {start:Moment().month(10).startOf('month'),end:Moment().month(0).endOf('month').add(1,'years')};
 obj.quarter2 = {start:Moment().month(1).startOf('month').add(1,'years'),end:Moment().month(3).endOf('month').add(1,'years')};
 obj.quarter3 = {start:Moment().month(4).startOf('month').add(1,'years'),end:Moment().month(6).endOf('month').add(1,'years')};
 obj.quarter4 = {start:Moment().month(7).startOf('month').add(1,'years'),end:Moment().month(9).endOf('month').add(1,'years')};

 return obj;

}

以此来设置从11月开始的季度。

是否有其他替代方法?

最佳答案

我想不出任何允许一年跨两年的内置函数或库。您可以轻松编写一个FinacialYear对象来完成此操作,并将其用作Date对象的包装器。您将需要一个采用开始年或结束年的构造函数,并以此为基础进行所有计算。

然后只需重载toString()方法以返回“2014-2015”,以及一个getQuarter(date)(使用if / else返回1 ... 4)。

09-11 02:05