gpt4 book ai didi

javascript - 如何使用 moment 获取最近 3 周的日期范围?

转载 作者:行者123 更新时间:2023-11-28 14:29:18 24 4
gpt4 key购买 nike

我需要过去 3 周的日期范围,包括本周的日期范围。

例如:今天的日期是:2018 年 8 月 31 日

输出将是:

8 月 26 日 - 9 月 1 日,
8 月 19 日至 8 月 25 日,
8月12日 - 8月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;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>

<小时/>

澄清:

为了简洁起见,使用了

[...Array(7)]。它创建一个包含 7 个 undefined 项的 Array,即 [undefined, undefined, ...]。这些项目被视为占位符,并将使用 .map() 映射到一周中的几天。 .

尽管未定义,我还是使用数组中该项目的index来增加星期几——换句话说,数组的第一项,[undefined]index0,因此我们将添加 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;
}

关于javascript - 如何使用 moment 获取最近 3 周的日期范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52108938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com