Sac*_*hah 0 javascript date momentjs
我需要过去 3 周的日期范围,包括本周的日期范围。
例如:今天的日期是:31/08/2018
输出将是:
Aug 26 - Sep 01 ,
Aug 19 - Aug 25 ,
Aug 12 - Aug 18
您可以使用 查找一周的开始时间.startOf('week')。
var currentWeek = getWeekRange(0);
var lastWeek = getWeekRange(-1);
var weekBeforeLast = getWeekRange(-2);
var currentWeek2 = getWeekRange2(0);
console.log(currentWeek, lastWeek, weekBeforeLast, currentWeek2);
function getWeekRange(week = 0) {
var weekStart = moment().add(week, 'weeks').startOf('week');
return [...Array(7)].map((_, i) =>
weekStart.clone().add(i, 'day').format('DD/MM/YYYY')
);
}
function getWeekRange2(week = 0) {
var weekStart = moment().add(week, 'weeks').startOf('week');
var days = [];
for (var i = 0; i < 7; i++) {
days.push(weekStart.clone().add(i, 'day').format('DD/MM/YYYY'));
}
return days;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>Run Code Online (Sandbox Code Playgroud)
为了澄清:
[...Array(7)]是为了简洁而使用的。它正在创建一个Array包含 7 个undefined项目的 ,即[undefined, undefined, ...]。这些项目被视为占位符,并将使用 映射到一周中的几天.map()。
尽管是undefined,我还是使用数组中的项目index来增加星期几——换句话说,数组的第一项 ,[undefined]将有一个indexof 0,所以我们将添加0天数,并添加到本周结束。
您还可以执行以下操作:
function getWeekRange(week = 0) {
var weekStart = moment().add(week, 'weeks').startOf('week');
var days = [];
for (var i = 0; i < 7; i++) {
days.push(weekStart.clone().add(i, 'day').format('DD/MM/YYYY'));
}
return days;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3171 次 |
| 最近记录: |