我使用momentjs来处理日期,我使用以下内容获取本周:
var startDate = moment().startOf('isoweek');
var endDate = moment().endOf('isoweek');
var weekDays = getWeekDays(startDate, endDate);
其中函数getWeekDays实现如下:
function getWeeDays(startDate, endDate) {
"use strict";
var days = [];
var day = startDate;
while (day <= endDate) {
days.push(day);
day = day.clone().add(1, 'd');
}
return days;
}
这很好用,但现在我需要得到的不是本周的日子,而是目标日期的一周。 例如,用户输入日期为2016年5月24日,我需要从2016年5月23日星期一到2016年5月29日星期日开始。
我试过了:
var startDate = moment().startOf('isoweek').year(year).month(month).day(day);
var endDate = moment().endOf('isoweek').year(year).month(month).day(day);
var weekDays = getWeekDays(startDate, endDate);
其中变量year,month和day在此示例中等于:2016,05,24。这不起作用。您是否有任何使用momentjs的建议或如何在不使用momentjs的情况下进行操作?
更新
好的,我自己解决了!对于发布的问题,我把解决方案放在这里(首先检查日期是否有效!):
if(moment(year + "/" + month + "/" + day, "YYYY/MM/DD", true).isValid()){
var startDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").startOf('isoweek');
var endDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").endOf('isoweek');
var weekDays = getWeekDays(startDate, endDate);
}
答案 0 :(得分:0)
这就是我为解决问题所做的工作:
if(moment(year + "/" + month + "/" + day, "YYYY/MM/DD", true).isValid()){
var startDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").startOf('isoweek');
var endDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").endOf('isoweek');
var weekDays = getWeekDays(startDate, endDate);
}
function getWeeDays(startDate, endDate) {
"use strict";
var days = [];
var day = startDate;
while (day <= endDate) {
days.push(day);
day = day.clone().add(1, 'd');
}
return days;
}
答案 1 :(得分:0)
`moment(anyValidDate).day()`
// will return you the index of the day of given date.
//i.e. 0 for Sunday, 1 for Monday and so on till 6 for Saturday. list of week days.
new Date().getDay() // will give same result as above.
接下来你知道该怎么做。