2012-10-22 74 views
1

我使用datejs上一個天,我想程序三個按鈕,
今天:產生這個星期的兩個日期限制一個,週一和thise周的週日
下一頁:生成兩個日期下週的限制一個
上一個:產生兩個日期的上一個星期

Datejs然後計算和

這裏我的代碼的限制一個

var currentDay = 0; 
(currentDay).days().fromNow().next().saturday().toString("yyyy-M-d"); 

(currentDay).days().fromNow().prev().monday().toString("yyyy-M-d"); 

三個按鈕做 currentDay + 7; currentDay - 7; currentDay = 0;

問題是
我們是星期一22,這個函數返回星期一15;

回答

1

下面的示例.getWeekRange()函數接受一個Date對象(或默認爲「今天」),將計算出週一當週,然後返回一個startend財產一週的對象。

var getWeekRange = function (date) { 
    var date = date || Date.today(), 
     start = date.is().monday() ? date : date.last().monday(), 
     end = start.clone().next().sunday(); 

    return { 
     start : start, 
     end : end 
    }; 
}; 

然後,您可以使用函數來獲取對於任何給定日期的一週範圍:

var range = getWeekRange(); 

console.log("Start", range.start); 
console.log("End", range.end); 

要獲得前一週,只需傳入前一週的Date對象:

var prev = getWeekRange(Date.today().last().week()); 

要得到下週,只是在一個Date對象通過從下週:

var next = getWeekRange(Date.today().next().week()); 

希望這有助於。

1

我已經寫了一些代碼,這一段時間前:

Date.prototype.getMonday=function(){return this.getDay()==1 ? this.clone().clearTime() : this.clone().prev().monday().clearTime();}; 
// This function returns the Monday of current week 
var today=new Date(); 
today.getMonday().toString(); 
today.getMonday().next().sunday().toString(); 
// start and end of this week 
today.getMonday().prev().monday().toString(); 
today.getMonday().prev().day().toString(); 
// previous week 
today.getMonday().next().monday().toString(); 
today().getMonday().next().sunday().sunday().toString(); 
// next week 

可以將這些幫助。

+0

星期一的'.prev()。monday()'是7天前,這可能會導致您的問題。 – rhgb

相關問題