Как определить, является ли дата выходного дня в javascript

Если у меня есть дата, входящая в функцию, как я могу узнать, есть ли у нее выходной день?

Ответ 1

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

Ответ 2

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

Ответ 3

Короткий и сладкий.

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

Ответ 4

Я попробовал правильный ответ, и он работал для определенных регионов, но не для всех:

В momentjs Docs: weekday Возвращаемое число зависит от локали initialWeekDay, поэтому Monday = 0 | Воскресенье = 6

Поэтому я изменяю логику, чтобы проверить фактическую DayString ("воскресенье")

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

Таким образом, вы не зависит от локали.

Ответ 5

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

Ответ 6

Я проверил большинство ответов здесь и там всегда были проблемы с часовым поясом, локалью, или когда начало недели либо в воскресенье, либо в понедельник.

Ниже приведена информация, которая, на мой взгляд, более безопасна, поскольку она основана на названии дня недели и локали en.

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;

Ответ 7

Просто добавьте 1 перед модулем

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