繁体   English   中英

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

[英]How to check if javascript date is from a specified week ago?

我试图做一个可以检查给定日期是否在指定的一周前的函数。

例如,如果输入为<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)); }); 

使用moment.js http://momentjs.com/docs/#/manipulating/subtract/

我们经常使用它,它是一个很棒的库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM