我对Moment函数的工作方式有点困惑(例如startOf()
,weekday()
等)。
我的问题是:如何从预定义的日期获得一周的开始?
考虑9/21/16
上的这两个电话:
moment().startOf('week') // Returns a moment object with date set to Sun Sep 18 2016 ...
VS
moment(new Date("9/21/16")).startOf('week') // Returns a moment object with date set to Wed Sep 21 2016 ...
为什么这些行为不一样?使用weekday(0)
代替startOf('week')
答案 0 :(得分:6)
您不能简单地将Date构造函数用于您喜欢的任何日期格式。例如,在我使用Firefox的系统上,new Date("9/21/16")
将Date对象设置为1916-09-20T22:00:00.000Z
。
使用ISO 8601格式,甚至更好,parse your string with Moment itself:
moment("9/21/16", "MM/DD/YY")
答案 1 :(得分:0)
您如何知道moment(new Date("9/21/16")).startOf('week')
正在返回Wed Sep 21 2016
?你在寻找返回的物体吗?如果是这样,我认为你只是看到输入日期。您应该使用moment.format()
函数来获取实际日期:
// "September 18, 2016"
moment().startOf("week").format("LL");
// "September 18, 2016"
moment("9/21/16", "MM/DD/YY").startOf("week").format("LL");
// "September 18, 2016" on my system (not recommended)
moment(new Date("9/21/16")).startOf("week").format("LL");