如何在javascript中确定日期是否为周末

leo*_*ora 71 javascript date

如果我有一个日期功能,我怎么知道它是否是一个周末?

Luk*_*keH 143

var day = yourDateObject.getDay();
var isWeekend = (day === 6) || (day === 0);    // 6 = Saturday, 0 = Sunday
Run Code Online (Sandbox Code Playgroud)

  • `d`!=`day` :)我宁愿称它为'dayOfWeek`,它对OP更有意义. (8认同)
  • @csvan:根据当前的时区设置,`getDay`应该总是在星期日返回0,在星期六等时返回6.(然后由OP根据他们的要求决定什么构成"周末".) (7认同)
  • 对于所有时区,这都不是*.例如,在法国,一周的第一天是星期一,而不是星期日.像Moment这样的现代时间库弥补了这一点. (3认同)
  • 某些国家/地区将周五和周六作为周末,因此此答案适用于 Christian Stackoverflow :-p (2认同)

ken*_*bec 42

var isWeekend = yourDateObject.getDay()%6==0;
Run Code Online (Sandbox Code Playgroud)

  • 0%6(星期日)和6%6(星期六)都有0模数 (11认同)
  • 除了自愿混淆外,我认为这种技术没有任何意义.我个人更喜欢LukeH的答案.这只是偶然的,在这种情况下,我们可以使用6而不是7的模来解决我们的问题. (7认同)

小智 8

简短又甜蜜.

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


T04*_*435 5

我尝试了正确的答案,它适用于某些语言环境,但不适用于所有语言环境:

在 momentjs 文档中:weekday 返回的数字取决于 locale initialWeekDay,所以 Monday = 0 | 星期日 = 6

所以我改变逻辑来检查实际的 DayString('Sunday')

const weekday = momentObject.format('dddd'); // Monday ... Sunday
const isWeekend = weekday === 'Sunday' || weekday === 'Saturday';
Run Code Online (Sandbox Code Playgroud)

这样你就独立于语言环境。