Momentjs 如何获得下个月的最后日期

pub*_*t33 2 javascript date momentjs

我正在尝试获取下个月的最后一天,由于某种原因,momentjs 返回了错误的日期

例如 :

console.log(moment('02/28/2018', "MM/DD/YYYY").add(i, 'M'));
Run Code Online (Sandbox Code Playgroud)

返回:

moment("2018-03-28T00:00:00.000")
Run Code Online (Sandbox Code Playgroud)

正确的日期应该在哪里:

moment("2018-03-31T00:00:00.000")
Run Code Online (Sandbox Code Playgroud)

gui*_*job 6

使用.add()您只是在实际日期上添加一个月,但您还想转到本月的最后一天,为此您可以使用.endOf()

moment('02/28/2018', "MM/DD/YYYY").add(1, 'M').endOf("month")
// 2018-03-31T23:59:59.999Z
Run Code Online (Sandbox Code Playgroud)

  • 对于任何想知道的人:如果下个月的天数少于当前的天数,则此解决方案也是安全的。所以 `moment('01/31/2018').add(1, 'M')` 结果是 `2018-02-28T23:59:59.999Z` (2认同)