2010-08-23 19 views

Respuesta

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

'd'! =' Day' :) yo prefiero llamarlo 'dayOfWeek', que tendría más sentido para OP. – BalusC

+3

Esto no es * verdadero para todas las zonas horarias. Por ejemplo, en Francia, el primer día de la semana será el lunes, no el domingo. Las bibliotecas de tiempo modernas como Moment compensan esto. – csvan

+5

@csvan: 'getDay' siempre debe devolver 0 para el domingo y 6 para el sábado, etc., de acuerdo con la configuración actual de la zona horaria. (Y luego le toca al OP decidir qué constituye un "fin de semana" según sus requisitos). – LukeH

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

Esto dice que es verdadero si es sábado –

+5

0% 6 (domingo) y 6% 6 (sábado) ambos tienen un módulo 0 – kennebec

+7

excepto que es voluntariamente confuso, no veo ningún punto en esta técnica. Personalmente prefiero la respuesta de LukeH. Es solo por casualidad que en este caso podemos usar el módulo de 6 en lugar de 7 para resolver nuestro problema. –

0

Basta con añadir 1 antes de módulo

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

Esto funciona solo si considera que el domingo es todo el fin de semana. – cpburnz

+0

@cpburnz la mayoría de los países lo hacen. solo unos pocos comienzan la semana con el domingo. – bokkie

+1

@bokkie Entonces esa es una pieza vital de información que se debe agregar a su respuesta. – cpburnz

3

corto y dulce.

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"); 
Cuestiones relacionadas