有没有办法根据日期范围找出年份和季度。
我们将11月视为开始日期,将10月视为财政年度的结束日期。
例如:11月上一年至明年10月被视为一个财政年度。
2014年11月1日 - 2015年10月31日 - >它被视为一个财政年度
10月31日之后的任何记录将进入下一个财政年度。
我们还需要找到如下的Quarters
第1季= 11月,12月及1月 第2季= 2月,3月,4月 第3季= 5月,6月,7月 第4季= 8月,9月,10月
moment('2014-12-01').utc().quarter()
- >它以1月为财政年度的开始日期返回4。
但它被认为是第一季度。
- 代码 -
function 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月开始的季度。
有没有替代方法?
答案 0 :(得分:2)
我想不出任何内置的功能或库允许一年跨越两年。您可以轻松编写一个FinacialYear对象来执行此操作,并将其用作Date对象的包装器。你需要一个接受开始年份或结束年份的构造函数,并根据它进行所有计算。
然后只是重载toString()方法以返回" 2014-2015",以及使用if / else返回1 ... 4的getQuarter(date)。