使用 moment.js 获取日期当前季度的最后一天

我有一个 javascript 日期,例如 05-04-2020。


我想弄清楚如何获取该日期的当前季度以及该季度的最后一天。这种情况下的答案应该是 06-30-2020。


下面是我创建的一个函数,但感觉这不是最好的方法:


function getLastDayOfQuarterMonth(date) {

    let retVal

    const quarter = moment(date).quarter()

    switch(quarter) {

      case 1:

        retVal = new Date(moment(date).year(), 2, 31)

        break;

      case 2:

        retVal = new Date(moment(date).year(), 5, 30)

        break;

      case 3:

        retVal = new Date(moment(date).year(), 8, 30)

        break;

      case 4:

        retVal = new Date(moment(date).year(), 11, 31)

        break;

    }


    return retVal

}


青春有我
浏览 445回答 3
3回答

动漫人物

您可以为此使用endOf函数。例子 :function getLastDayOfQuarterMonth(date) {    let retVal = moment().quarter(moment(date).quarter()).endOf('quarter').format('MM-DD-YYYY');    return retVal}let date = "05-04-2020";alert(getLastDayOfQuarterMonth(date));

胡子哥哥

我们可以利用quarter和endOf提供的方法moments。const date = "05-04-2020";const getLastDayOfTheQuarter = (date) => moment().quarter(moment(date, "MM-DD-YYYY").quarter()).endOf('quarter').format("MM-DD-YYYY");console.log(getLastDayOfTheQuarter(date));console.log(getLastDayOfTheQuarter(moment().format("MM-DD-YYYY")));<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>为简单起见,我将输入和输出格式视为MM-DD-YYYY. 它可以根据需要进行更新。

慕斯王

您可以简单地使用endOf("quarter"):function getLastDayOfQuarterMonth(date) {  return moment(date, "MM-DD-YYYY").endOf('quarter').toDate();}console.log(getLastDayOfQuarterMonth("05-04-2020"));<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.25.0/moment.min.js"></script>请注意,您必须指定格式才能05-04-2020立即正确解析,请参阅moment(String, String)。您可以使用它toDate()来获取 Moment.js 包装的本机 Date 对象的副本或format()获取您喜欢的输出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript