簡體   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