4

有没有办法根据日期范围找出年份和季度。

我们正在考虑将 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()->
考虑到 Jan 作为财政年度的开始日期,它返回 4。

但它被认为是第一季度。

- 代码 -

函数 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 月开始使用它来设置季度。

有没有其他方法?

4

1 回答 1

2

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

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

于 2015-10-26T11:05:41.503 回答