In Moment.js, how do you get the current financial Quarter?

后端 未结 9 1679
深忆病人
深忆病人 2020-12-14 16:07

Is there a simple/built in way of figuring out the current financial quarter?

ex:

  • Jan-Mar: 1st
  • Apr-Jul: 2nd
  • Jul-Sept: 3rd
9条回答
  •  有刺的猬
    2020-12-14 16:39

    Answer given by Nishchit Dhanani, is correct but has one issue in 'April' scenario.

    Issue: If your financial year is April than, For first 3 months i.e. JAN, FEB & MAR

    obj.quarter1.start date returns, 1-April-CurrentYear [incorrect Value]
    obj.quarter4.end date retunrs, 31-March-NextYear [incorrect Value]
    

    Correct values should be,

    Start = 1-April-PreviuosYear
    End = 31-March-CurrentYear
    

    So, Taking consideration for first 3 month it can be written something like,

        const obj = {};
    
    /* 0-Jan, 1-Feb, 2-Mar */
        if (moment().month() <= 2) { 
            obj.quarter1 = { start: moment().month(3).startOf('month').add('years', -1), end: moment().month(5).endOf('month').add('years', -1) };
            obj.quarter2 = { start: moment().month(6).startOf('month').add('years', -1), end: moment().month(8).endOf('month').add('years', -1) };
            obj.quarter3 = { start: moment().month(9).startOf('month').add('years', -1), end: moment().month(11).endOf('month').add('years', -1) };
            obj.quarter4 = { start: moment().month(0).startOf('month'), end: moment().month(2).endOf('month') };    
        } else {
            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);
    

提交回复
热议问题