2012-10-03 40 views
0

Using Datejs - Get the day of the weekDatejs:讓我還使用<a href="http://www.datejs.com" rel="nofollow noreferrer">http://www.datejs.com</a>一週

的日數。而且我也一定會錯過它。有沒有辦法讓我可以有一週的天數

我知道我可以使用數組等價,但圖書館是如此之好,我認爲我錯過了它,而且我到處都是。

UPDATE:

我也知道我可以使用日期getDay方法,但是我覺得有一個datejs替代糾正內置的日期對象的一些怪異的行爲。

+0

我想你只是使用getDay,datejs擴展了Date原型,但它的原始功能應該仍然可以正常工作。 – PherricOxide

+0

但datejs的存在,以糾正原來的日期對象錯誤,所以我認爲有一個替代getDay方法。 – lolol

+0

@lolol Date.js主要用於* extend *原始的Date對象,添加了通常不需要的方法,比如自定義格式。 「日期」對象中的「*修復*」並不多。 Date.js本身[使用'getDay()'](http://code.google.com/p/datejs/source/browse/trunk/src/core.js#837)(837-840行)。 –

回答

1

你可以得到標準Date方法,getDaygetUTCday數量:

new Date('2012-10-03').getDay(); // 2 
+0

請參閱我的更新。 – lolol

+0

@lolol'getDay'是'Date'對象的[標準化方法](http://es5.github.com/#x15.9.5.16)。你想從Date.js中修復哪些「怪異行爲*」? –

+0

我不知道。有沒有?我轉移到datejs以避免研究每個內置日期對象錯誤或怪異行爲的解決方法。但是,你不認爲datejs應該有一個特定的方法,即使它不會比getDay方法做任何事情嗎? – lolol

1

只需使用內置的getDay功能Date對象:

new Date().getDay(); 
0

此代碼計算一天1700/1/1之後的日期通過其中一種算法來計算它

var weekDay = function(year, month, day) { 
        var offset = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; 
        var week = {0:'Sunday', 
           1:'Monday', 
           2:'Tuesday', 
           3:'Wednesday', 
           4:'Thursday', 
           5:'Friday', 
           6:'Saturday'}; 
        var afterFeb = (month > 2)? 0 : 1; 
        aux = year - 1700 - afterFeb; 
        // dayOfWeek for 1700/1/1 = 5, Friday 
        dayOfWeek = 5;      
        // partial sum of days betweem current date and 1700/1/1 
        dayOfWeek += (aux + afterFeb) * 365; 
        // leap year correction 
        dayOfWeek += parseInt(aux/4) - 
           parseInt(aux/100) + 
           parseInt((aux + 100)/400); 
        // sum monthly and day offsets 
        dayOfWeek += offset[month - 1] + (day - 1); 
        dayOfWeek = parseInt(dayOfWeek % 7); 

        return [dayOfWeek, week[dayOfWeek]]; 
       }; 


console.log(weekDay(2013, 6, 15)[0] == 6, weekDay(2013, 6, 15)[1] == "Saturday"); 
console.log(weekDay(1969, 7, 20)[0] == 0, weekDay(1969, 7, 20)[1] == "Sunday"); 
console.log(weekDay(1945, 4, 30)[0] == 1, weekDay(1945, 4, 30)[1] == "Monday"); 
console.log(weekDay(1900, 1, 1)[0] == 1, weekDay(1900, 1, 1)[1] == "Monday"); 
console.log(weekDay(1789, 7, 14)[0] == 2, weekDay(1789, 7, 14)[1] == "Tuesday"); 
相關問題