1

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

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

3 回答 3

4

用于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'));

于 2018-05-08T11:17:13.440 回答
2

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

只需四个简单的步骤,您就可以在 vanilla JavaScript 中可靠地做到这一点:

  1. 将您拆分yyyy-mm-dd为一个[yyyy, mm, dd]数组。
  2. 用于使用数组中的值new Date(year, month, day)创建对象。请注意,对于0 和 11 之间的值,而不是 1 和 12 之间的值是预期的。Date
    month
  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

于 2018-05-10T15:41:33.790 回答
1

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>

于 2018-05-08T11:28:49.193 回答