使用 moment.js 将日期的日设置为1日

6
我正在查找Moment文档,但是找不到所需的方法。在我的解决方案中,我获取今天的日期,然后获取前一个月和后一个月的日期,但是希望获取本月的第一天和下个月的最后一天的日期。
简要而言,结果应该如下所示:
- 今天的日期: 2017年5月21日 - 开始日期 = 2017年4月1日 - 结束日期 = 2017年6月30日 我的代码:
var startDate = moment(date).subtract(1,'months')
var endDate = moment(date).add(1,'months');
3个回答

19

使用addsubtract方法来获取下一个和上一个月,使用startOfendOf方法来获取月份的第一天和最后一天。

以下是一个可用的示例:

var date = moment([2017, 4, 21]); // one way to get 21/05/2017
// If your input is a string you can do:
//var date = moment('21/05/2017', 'DD/MM/YYYY');
var startDate = date.clone().subtract(1, 'month').startOf('month');
var endDate = date.clone().add(1, 'month').endOf('month');

console.log(startDate.format('DD/MM/YYYY')); // 01/04/2017
console.log(endDate.format('DD/MM/YYYY'));   // 30/06/2017
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>


2
您可以使用moment().startOf('month')moment().endOf('month')方法。

1
let startDate = moment().startOf('month').subtract(1, 'months').toDate()
let endDate = moment().endOf('month').add(1, 'months').toDate()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接