2010-08-23 9 views

Odpowiedz

98
var day = yourDateObject.getDay(); 
var isWeekend = (day == 6) || (day == 0); // 6 = Saturday, 0 = Sunday 
+7

'd'! =' Day' :) wolałbym to nazwać 'dayOfWeek', byłoby bardziej sensowne, aby OP. – BalusC

+3

To jest * nie * prawdziwe dla wszystkich stref czasowych. Na przykład we Francji pierwszym dniem tygodnia będzie poniedziałek, a nie niedziela. Nowoczesne biblioteki czasu, takie jak Moment, rekompensują to. – csvan

+5

@csvan: 'getDay' powinien zawsze zwracać 0 dla niedzieli i 6 dla soboty itd., Zgodnie z bieżącymi ustawieniami strefy czasowej. (I wtedy to zależy od OP, aby zdecydować, co stanowi "weekend" zgodnie z ich wymaganiami.) – LukeH

29
var isWeekend = yourDateObject.getDay()%6==0; 
+0

To powiedzenie zwraca prawdę, jeśli jest sobota –

+5

0% 6 (niedziela) i 6% 6 (sobota) oba mają 0 moduł – kennebec

+7

z wyjątkiem dobrowolnego mylenia, nie widzę sensu tej techniki. Osobiście wolę odpowiedź Luke'a. To tylko przypadek, że w tym przypadku możemy użyć modulo 6 zamiast 7, aby rozwiązać nasz problem. –

0

Wystarczy dodać 1 przed modulo

var isWeekend = (yourDateObject.getDay() + 1) % 7 == 0; 
+3

Działa to tylko wtedy, gdy uważasz, że niedziela jest na cały weekend. – cpburnz

+0

@cpburnz robi większość krajów. tylko nieliczni rozpoczynają tydzień w niedzielę. – bokkie

+1

@bokkie Następnie jest to ważna informacja, która powinna zostać dodana do twojej odpowiedzi. – cpburnz

3

Krótkie i słodkie.

var isWeekend = ([0,6].indexOf(new Date().getDay()) != -1);

0
var d = new Date(); 
var n = d.getDay(); 
if(n == 6) 
console.log("Its weekend!!"); 
else 
console.log("Its not weekend"); 
Powiązane problemy