2013-03-03 105 views
1

我對Date.js庫有一些問題。我使用俄羅斯文化設置。星期一的第一天設置爲1.這意味着,我的星期應該是從星期一到星期天。星期一應該是我呼叫時的返回值: Date.getDayNumberFromName('понедельник'); //星期一,它應該返回0 和 Date.getDayNumberFromName('воскресенье'); //星期天,它應該返回6星期一 - 星期一在Date.js

,當然,它應該是實際的所有星期計算。例如,今天(3月3日星期日),這個代碼:Date.monday()應該在2月25日返回。 但事實並非如此。爲什麼?我該怎麼做,改變全球的「firstDayOfWeek」?

更新: 小提琴有一些問題。我在自己的主機上做了一個例子:http://sulla.ru/lab/

回答

0

我對這個幾乎死掉的庫進行了調試(死了,因爲上次更新大概是4年前),我發現了bug。自衛隊功能,它計算的轉變,是這樣:

var sdf = function (n) { 
    return function() { 
    var t = $D.today(), shift = n - t.getDay(); 
     if (n === 0 && $C.firstDayOfWeek === 1 && t.getDay() !== 0) { 
      shift = shift + 7; 
     } 
     return t.addDays(shift); 
    }; 
}; 

,我已經改成了:

var sdf = function (n) { 
    return function() { 
     var t = $D.today(), shift = n - t.getDay(); 

     if (n === 0 && $C.firstDayOfWeek === 1 && t.getDay() !== 0) { 
      shift = shift + 7; 
     } else if (t.getDay() === 0 && n !== 0) { 
      shift = shift - 7; 
     } 
     return t.addDays(shift); 
    }; 
}; 

顯然,它解決了我的問題。我已經爲此問題製作了錯誤票,併發送了答案。

相關問題