как определить, если дата в выходные дни в JavaScript - PullRequest
66 голосов
/ 24 августа 2010

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

Ответы [ 7 ]

131 голосов
/ 24 августа 2010
var day = yourDateObject.getDay();
var isWeekend = (day === 6) || (day === 0);    // 6 = Saturday, 0 = Sunday
40 голосов
/ 24 августа 2010
var isWeekend = yourDateObject.getDay()%6==0;
8 голосов
/ 11 марта 2015

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

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

3 голосов
/ 07 ноября 2018

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

В моментах Документы: день недели Возвращаемое число зависит от локали initialWeekDay, поэтому Monday = 0 |Sunday = 6

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

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

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

0 голосов
/ 08 июля 2019

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

Ниже приводится более безопасный вариант, поскольку он основан на имени дня недели и на 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;
0 голосов
/ 24 февраля 2016
var d = new Date();
var n = d.getDay();
 if( n == 6 )
console.log("Its weekend!!");
else
console.log("Its not weekend");
0 голосов
/ 24 октября 2014

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

var isWeekend = (yourDateObject.getDay() + 1) % 7 == 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...