如果我有一个日期进入某个功能,我怎么知道它是否是一个周末?
答案 0 :(得分:129)
var day = yourDateObject.getDay();
var isWeekend = (day === 6) || (day === 0); // 6 = Saturday, 0 = Sunday
答案 1 :(得分:39)
var isWeekend = yourDateObject.getDay()%6==0;
答案 2 :(得分:8)
简短又甜蜜。
var isWeekend = ([0,6].indexOf(new Date().getDay()) != -1);
答案 3 :(得分:2)
我尝试了正确答案,它适用于某些语言环境,但不适用于所有语言环境
在momentjs文档中:weekday 返回的数字取决于语言环境initialWeekDay,因此Monday = 0 |星期日= 6
所以我更改了逻辑以检查实际的DayString('Sunday')
const weekday = momentObject.format('dddd'); // Monday ... Sunday
const isWeekend = weekday === 'Sunday' || weekday === 'Saturday';
通过这种方式,您可以独立于语言环境。
答案 4 :(得分:1)
更新2020
现在有多种方法可以实现这一目标。
1)使用day
方法获取0-6的天数:
const day = yourDateObject.day();
// or const day = yourDateObject.get('day');
const isWeekend = (day === 6 || day === 0); // 6 = Saturday, 0 = Sunday
2)使用isoWeekday
方法获取1-7的日子:
const day = yourDateObject.isoWeekday();
// or const day = yourDateObject.get('isoWeekday');
const isWeekend = (day === 6 || day === 7); // 6 = Saturday, 7 = Sunday
答案 5 :(得分:0)
var d = new Date();
var n = d.getDay();
if( n == 6 )
console.log("Its weekend!!");
else
console.log("Its not weekend");
答案 6 :(得分:0)
我已经在这里测试了大多数答案,并且时区,区域设置或每周的开始时间是星期日或星期一总是存在一些问题。
以下是我认为更安全的一种,因为它依赖于工作日的名称和 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 :(得分:0)
在当前版本中,您应该使用
var day = yourDateObject.day();
var isWeekend = (day === 6) || (day === 0); // 6 = Saturday, 0 = Sunday
答案 8 :(得分:0)
在Date对象上使用.getDay()方法获取日期。
检查它是6(星期六)还是0(星期日)
var givenDate = new Date('2020-07-11');
var day = givenDate.getDay();
var isWeekend = (day === 6) || (day === 0) ? 'It's weekend': 'It's working day';
console.log(isWeekend);
答案 9 :(得分:-1)
只需在modulo
之前添加1var isWeekend = (yourDateObject.getDay() + 1) % 7 == 0;
答案 10 :(得分:-1)
以下内容输出一个布尔值,表示日期对象是否在« 开放 »小时内(不包括周末)以及23H00
到{{ 1}},同时考虑到客户端的时区偏移量。
当然,这不处理特殊情况,例如假期,但不远;)
9H00
let t = new Date(Date.now()) // Example Date object
let zoneshift = t.getTimezoneOffset() / 60
let isopen = ([0,6].indexOf(t.getUTCDay()) === -1) && (23 + zoneshift < t.getUTCHours() === t.getUTCHours() < 9 + zoneshift)
// Are we open?
console.log(isopen)
或者,要获取星期几作为区域设置 Human 字符串,我们可以使用:
<b>We are open all days between 9am and 11pm.<br>
Closing the weekend.</b><br><hr>
Are we open now?
请注意let t = new Date(Date.now()) // Example Date object
console.log(
new Intl.DateTimeFormat('en-US', { weekday: 'long'}).format(t) ,
new Intl.DateTimeFormat('fr-FR', { weekday: 'long'}).format(t) ,
new Intl.DateTimeFormat('ru-RU', { weekday: 'long'}).format(t)
)
在循环内运行缓慢,简单的关联数组运行起来会更快:
new Intl.DateTimeFormat