我想获得一个月的第一天,然后使用Moment日期对象做其他事情,但是当我做的时候会发生什么
moment().startOf('month').day()
它将当前对象的日期更改为月份的第一天,而不是简单地将其读取
var m = moment()
m.format('D') // 20
m.startOf('month').day()
m.format('D') // 1
我可以只在第一天阅读,而不更改时刻对象吗?
答案 0 :(得分:2)
我可以只在第一天阅读,而不更改时刻对象吗?
我认为你不能,但你可以先克隆它。因此,假设m
是一个Moment对象,您不想更改:
m.clone().startOf('month').day();
// ^^^^^^^^
示例:
var m = moment("2016-06-20", "YYYY-MM-DD");
console.log(m.format("dddd Do")); // Monday 20th
console.log(m.clone().startOf('month').format("dddd Do")); // Wednesday 1st
// ----------^^^^^^^^
console.log(m.format("dddd Do")); // Monday 20th
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>