垫日期选择器angular6中的星期选择

时间:2018-06-27 14:44:40

标签: datepicker angular-material angular6

我想将功能添加到“物料日期”选择器中,以便能够选择“星期”。 因此,当我从一行中选择一个日期时,我希望它输出从星期开始到星期结束的日期范围。

我以前在常规的jquery日历上做到了-检查照片,但我想知道在mat-datepicker中是否可行

Week Picker

1 个答案:

答案 0 :(得分:0)

好吧,我经历了很多,这是我的功能的结果 首先,我们设置星期一,我有一个函数(过滤器周),用于设置星期一和星期天的值,对于我发送的请求,我仅将其发布为示例。

现在在dateclass()中,它是一个使日期选择器中的单元格类别发生变化的函数,在html中的“

现在,在此函数中,我有2个if,用于验证星期一不是30还是31,在这种情况下,其余时间为1,2,3,依此类推(现在我正在考虑,我需要修复此验证xD,因为如果tusday是30或31,问题仍然存在),因为我们具有星期几的值,请使用time .valueOf()函数比较日期之间的时间值(日期值位于if xD中的if内)和星期几的值

如果需要帮助,请写信给我。使用此referend question可以更好地了解我设置特殊日子的颜色的方式

filterWeek(){
 let d = this.selectedW
 let day = d.getDay();
 let diffm = d.getDate()-day +1;
 let diffs = d.getDate()-day +7;
 let mon = new Date(d.setDate(diffm));
 let sun = new Date(d.setDate(diffs));

  if(mon.getDate() > sun.getDate()){
   this.monday=mon.getFullYear()+'-'+(mon.getMonth()+1)+'-'+mon.getDate();
   this.sunday =sun.getFullYear()+'-'+(sun.getMonth()+2)+'-'+sun.getDate();
  }else{
   this.monday=mon.getFullYear()+'-'+(mon.getMonth()+1)+'-'+mon.getDate();
   this.sunday =sun.getFullYear()+'-'+(sun.getMonth()+1)+'-'+sun.getDate();
  }
  
 }

dateClass() {
let l:any =new Date(this.monday);
var day = new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, 0);
if(l.getDate() === day.getDate()){
  let m:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, 1);
  let x:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, 2);
  let j:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, 3);
  let v:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, 4);
  let s:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, 5);
  let d:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, 6);
  return (date: Date): MatCalendarCellCssClasses => {
  
    if (date.valueOf() === l.valueOf() || date.valueOf() === m.valueOf() || date.valueOf() === x.valueOf()
     ||date.valueOf() === j.valueOf() || date.valueOf() === v.valueOf() || date.valueOf() === s.valueOf() 
     || date.valueOf() === d.valueOf()) {
      return 'special-date';
    } else {
      return;
    }
  };
}else{
  let m:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 1, new Date(this.monday).getDate()+1);
  let x:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 2, new Date(this.monday).getDate()+2);
  let j:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 2, new Date(this.monday).getDate()+3);
  let v:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 2, new Date(this.monday).getDate()+4);
  let s:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 2, new Date(this.monday).getDate()+5);
  let d:any =new Date(new Date(this.monday).getFullYear(), new Date(this.monday).getMonth() + 2, new Date(this.monday).getDate()+6);
return (date: Date): MatCalendarCellCssClasses => {
  if (date.valueOf() === l.valueOf() || date.valueOf() === m.valueOf() || date.valueOf() === x.valueOf()
  ||date.valueOf() === j.valueOf() || date.valueOf() === v.valueOf() || date.valueOf() === s.valueOf() 
  || date.valueOf() === d.valueOf()) {
    return 'special-date';
  } else {
    return;
  }
};
}

}