确定日期是否在 Angular/Javascript 中的周末

Determine whether a date falls on weekend in Angular/Javascript

给定一个 yyyy-mm-dd 格式的日期,如何确定日期是否在 Angular/Javascript 的周末?

$scope.isWeekend= function(){ 
  $scope.date = '2018-05-13'; 
  /* if (day(date)=='saturday' || day(date)=='sunday') { */
  alert("");
  /* } */
}

使用 Date#getDay() 获取星期几并检查它是 6(星期六)还是 0(星期日):

function isWeekend(string) {
  var date = new Date(string);
  return date.getDay() === 6 || date.getDay() === 0;
}

console.log(isWeekend('2018-05-13'));
console.log(isWeekend('2018-05-12'));
console.log(isWeekend('2018-03-13'));

momentjs中,使用moment('YYYY-MM-DD').day()获取天数,然后检查它是否等于60(星期六或星期日)。

function isWeekend(date) {
  var date = moment(date),day = date.day();
  return (day === 6) || (day === 0)
}

console.log(isWeekend("2018-05-06")) // true
console.log(isWeekend("2018-05-08")) // false
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

仅仅使用 momentjs 来确定一个日期是否在周末有点过分了。

您只需四个简单的步骤即可在原版 JavaScript 中可靠地完成此操作:

  1. 将您的 yyyy-mm-dd 拆分为 [yyyy, mm, dd] 数组。
  2. 使用 new Date(year, month, day) 创建一个 Date 对象,使用数组中的值。
    请注意,month 的值介于 0 和 11 之间,而不是介于预期为 1 和 12。
  3. 使用 date.getDay() 获取星期几的数字表示,其中 0 是星期日,1 是星期一,2 是星期二,依此类推
  4. 检查星期几是 0 还是 6。

演示

function isWeekend(dateString) {
  /* Step 1 */ var dateArray = dateString.split("-");
  /* Step 2 */ var date = new Date(dateArray[0], dateArray[1] - 1, dateArray[2]);
  /* Step 3 */ var day = date.getDay();
  /* Step 4 */ return day === 0 || day === 6;
}

console.log(isWeekend("2018-05-03")) // false
console.log(isWeekend("2018-05-04")) // false
console.log(isWeekend("2018-05-05")) // true
console.log(isWeekend("2018-05-06")) // true
console.log(isWeekend("2018-05-07")) // false
console.log(isWeekend("2018-05-08")) // false