gpt4 book ai didi

javascript - 如何检查javascript日期是否来自指定的一周前?

转载 作者:行者123 更新时间:2023-11-30 15:44:10 25 4
gpt4 key购买 nike

我正在尝试制作一个函数来检查给定日期是否在指定的一周前。

例如,如果输入是 <1, date object> ,然后它会询问给定日期是否来自上周。如果输入是<2, date object> , 然后它会询问给定的日期是否是 2 周前的,等等。(0 表示本周)。

周为周日至周六。

    this.isOnSpecifiedWeekAgo = function(weeks_ago, inputDate) {



return false;
};

但我不想使用任何库,而且我也不确定如何更改日期对象的星期。有谁知道如何开始?

谢谢

最佳答案

如果你想找出一周前的日期,你可以简单地从当前日期减去 7 天:

var weekAgo = new Date();
weekAgo.setDate(weekAgo.getDate() - 7);
console.log(weekAgo.toLocaleString());

如果您想知道某个日期是否在特定的一周内,您需要:

  1. 确定那一周的开始日期
  2. 确定该周的结束日期
  3. 查看日期是否在开始或之后以及结束或之前

由于您的星期是星期日到星期六,因此您可以从以下位置获取一周的第一天:

var weekStart = new Date();
weekStart.setDate(weekStart.getDate() - weekStart.getDay());
console.log(weekStart.toLocaleString());

时间应归零,然后为 7 天后创建一个新日期。那将是下周日开始时的午夜,与下周六结束时的午夜相同。所以一个函数可能看起来像:

function wasWeeksAgo(weeksAgo, date) {
// Create a date
var weekStart = new Date();
// Set time to 00:00:00
weekStart.setHours(0,0,0,0);
// Set to previous Sunday
weekStart.setDate(weekStart.getDate() - weekStart.getDay());
// Set to Sunday on weeksAgo
weekStart.setDate(weekStart.getDate() - 7*weeksAgo)
// Create date for following Saturday at 24:00:00
var weekEnd = new Date(+weekStart);
weekEnd.setDate(weekEnd.getDate() + 7);
// See if date is in that week
return date >= weekStart && date <= weekEnd;
}

// Test if dates in week before today (1 Nov 2016)
// 1 Oct 24 Oct
[new Date(2016,9,1), new Date(2016,9,24)].forEach(function(date) {
console.log(date.toLocaleString() + ' ' + wasWeeksAgo(1, date));
});

关于javascript - 如何检查javascript日期是否来自指定的一周前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40350367/

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