web-dev-qa-db-fra.com

comment déterminer si la date est week-end en javascript

si j'ai une date entrant dans une fonction, comment puis-je savoir si c'est un jour de week-end?

58
leora
var day = yourDateObject.getDay();
var isWeekend = (day === 6) || (day === 0);    // 6 = Saturday, 0 = Sunday
121
LukeH
var isWeekend = yourDateObject.getDay()%6==0;
37
kennebec

J'ai essayé la réponse correcte et cela a fonctionné pour certains endroits mais pas pour tous:

Dans momentdocs Docs: jour de la semaine Le nombre retourné dépend de la locale initialWeekDay, alors lundi = 0 | Dimanche = 6

Alors je change la logique pour vérifier le DayString ('Dimanche')

const weekday = momentObject.format('dddd'); // Monday ... Sunday
const isWeekend = weekday === 'Sunday' || weekday === 'Saturday';

De cette façon, vous êtes indépendant du lieu.

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

J'ai testé la plupart des réponses ici et il y a toujours un problème avec le fuseau horaire, les paramètres régionaux ou lorsque le début de la semaine est dimanche ou lundi.

En voici un qui est plus sûr, car il repose sur le nom du jour de la semaine et sur le en locale.

let startDate = start.clone(),
    endDate = end.clone();

let days = 0;
do {
    const weekday = startDate.locale('en').format('dddd'); // Monday ... Sunday
    if (weekday !== 'Sunday' && weekday !== 'Saturday') days++;
} while (startDate.add(1, 'days').diff(endDate) <= 0);

return days;
0
luizfelippe