Определить, попадает ли дата на выходные в Angular / Javascript - PullRequest
0 голосов
/ 08 мая 2018

Учитывая дату в формате yyyy-mm-dd, как я могу определить, попадает ли дата в выходные дни в Angular / Javascript?

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

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

В momentjs используйте moment('YYYY-MM-DD').day(), чтобы получить номер дня, а затем проверьте, равно ли оно 6 или 0 (суббота или воскресенье).

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>
0 голосов
/ 10 мая 2018

Использование моментов только для определения того, выпадает ли дата на выходные, немного излишне.

Вы можете сделать это надежно в 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.

Демо

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
0 голосов
/ 08 мая 2018

Используйте 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'));
...