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

时间:2018-05-08 11:13:56

标签: javascript angularjs scope momentjs weekend

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

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

3 个答案:

答案 0 :(得分: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'));

答案 1 :(得分:2)

使用momentjs来确定某个日期是否属于周末有点矫枉过正。

只需四个简单的步骤,您就可以在vanilla 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。
  5. 演示

    
    
    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
    
    
    

答案 2 :(得分: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>
&#13;
&#13;
&#13;