【问题标题】:Disable mat-datepicker with holidays list and weekdays(saturday & Sunday) in angular material在角度材料中禁用带有假期列表和工作日(周六和周日)的 mat-datepicker
【发布时间】:2021-06-17 16:20:53
【问题描述】:

我正在尝试根据假期列表禁用日期(从 api 获取),并且我想禁用工作日,即周六和周日。我可以禁用假期日期列表,但无法禁用工作日。这是我使用的代码。

holidayDateFilter = (d: Date): boolean => {
let d = moment(d);
if (this.holidayList) {
  return !this.holidayList.find((x) => {
    return moment(x).isSame(d, 'day');
  })
}

}

现在,我在哪里设置禁用周末的条件。

请帮我解决这个问题。 提前致谢。

【问题讨论】:

    标签: javascript angular angular-material


    【解决方案1】:

    您可以添加功能来检查当天是否是周末。

    holidayDateFilter = (d: Date): boolean => {
      // check if date is weekend day
      if (date.getDay() === 0 || date.getDay() === 6) {
        return true;
      }
    
      // check if date is holiday
      let d = moment(d);
      if (this.holidayList) {
        return !this.holidayList.find(x => {
          return moment(x).isSame(d, 'day');
        });
      }
    };
    

    【讨论】:

    • 现在,我要做的就是这里。我有一个像“CXXXXXC”这样的字符串,其中 C 表示星期日和星期六是所有人的假期。我有另一个数组假期列表 ['date1', 'date2'.... 等等]。这个日期数组还可以包含星期六和星期日。
    • 当 'CXXXXXX' 出现在字符串中并且在 holidayList 中某些日期是星期六时,如何实现禁用周末的功能。
    • if (weekday === 0 || weekday === 6) { if(this.saturday && this.sunday){ return weekday !== 0 && weekday !== 6; } else if(this.sunday){ return weekday !== 0 ; } else if(this.saturday){ return weekday !== 6; } 其他{ 返回​​真; } } if (this.holidayList) { return !this.holidayList.find((x) => { let holidayDates = moment(x).isSame(momentDate, 'day'); if(holidayDates){ return moment(x) .isSame(momentDate, 'day'); } }) }
    • 谁能帮忙解决这个问题。
    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多