需求:根据当天日期,获得所在周的所有日期,比如今天(2018-01-21)那么这一周的日期是:
['2018-01-15',...'2018-01-21'],要支持跨年,跨月。
注:星期一为一周的开始,星期天为结束
我现在写的这个方法,遇到星期日时返回的就错了。变成下周的了。求大神给个方法。
需求:根据当天日期,获得所在周的所有日期,比如今天(2018-01-21)那么这一周的日期是:
['2018-01-15',...'2018-01-21'],要支持跨年,跨月。
注:星期一为一周的开始,星期天为结束
我现在写的这个方法,遇到星期日时返回的就错了。变成下周的了。求大神给个方法。
function getWeekDay(dateString) {
let dateStringReg = /^\d{4}[/-]\d{1,2}[/-]\d{1,2}$/;
if (dateString.match(dateStringReg)) {
let presentDate = new Date(dateString),
today = presentDate.getDay() !== 0 ? presentDate.getDay() : 7;
return Array.from(new Array(7), function(val, index) {
return formatDate(new Date(presentDate.getTime() - (today - index-1) * 24 * 60 * 60 * 1000));
});
} else {
throw new Error('dateString should be like "yyyy-mm-dd" or "yyyy/mm/dd"');
}
function formatDate(date) {
return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
}
}
console.log(getWeekDay('2018-1-8'));
function getDates(currentTime) {//JS获取当前周从星期一到星期天的日期
var currentDate = new Date(currentTime)
var timesStamp = currentDate.getTime();
var currenDay = currentDate.getDay();
var dates = [];
for (var i = 0; i < 7; i++) {
dates.push(new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7)).toLocaleDateString().replace(/\//g, '-'));
}
return dates
}
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
供参考