2010-08-23 11 views
48

tarihinin hafta sonu olup olmadığını belirlemek için nasıl bir işleve sahip bir tarih varsa, onun bir hafta sonu günü olup olmadığını nasıl anlarım?javascript

cevap

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

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

'! =' Day' :) Daha doğrusu çağırır d' 'dayOfWeek', OP daha mantıklıdır. – BalusC

+3

Bu, tüm saat dilimleri için * doğru değil *. Örneğin, Fransa'da, haftanın ilk günü Pazar değil, Pazartesi olacaktır. Moment gibi modern zaman kütüphaneleri bunu telafi ediyor. – csvan

+5

@csvan: Mevcut zaman dilimi ayarlarına göre "getDay" her zaman Pazar günü için 0, cumartesi vb. Için 0 dönmelidir. (Ve sonra bir "haftasonu" onların gereksinimlerine göre oluşturduğuna karar vermek için OP kadar.) – LukeH

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

Bu Cumartesi –

+5

0% 6 (Pazar) ve% 6 6 (Cumartesi) her ikisi de 0 modüllü – kennebec

+7

varsa, doğru döner diyor gönüllü kafa karıştırıcı olmanın dışında, bu teknikte hiçbir nokta görmüyorum. Ben şahsen Luke'un cevabını tercih ediyorum. Sadece bu durumda, problemimizi çözmek için 7 yerine 6'lık modulo kullanabiliriz. –

0

Basitçe modülo

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

Bu, yalnızca pazar gününü tüm hafta sonu olarak kabul ederseniz çalışır. – cpburnz

+0

@cpburnz çoğu ülkede yapıyor. sadece birkaç hafta Pazar günü ile başlar. – bokkie

+1

@bokkie O zaman cevabınıza eklenecek çok önemli bir bilgi parçasıdır. – cpburnz

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