为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

青春有我 2023-05-11 16:21:29
我有一个 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}
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以为此使用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));


查看完整回答
反对 回复 2023-05-11
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我们可以利用quarterendOf提供的方法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. 它可以根据需要进行更新。



查看完整回答
反对 回复 2023-05-11
?
慕斯王

TA贡献1864条经验 获得超2个赞

您可以简单地使用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()获取您喜欢的输出。



查看完整回答
反对 回复 2023-05-11
  • 3 回答
  • 0 关注
  • 444 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信