今天产品提出一个需求,月份只能选择本月以及之后的月份,datePicker有一个options属性,options里加上disabledDate属性
在这里最重要的是下面的return,需要 - 28800000
特意去查了一下28800000是什么含义,说是1970-01-01 00:00:00转成时间戳就是-28800000,是时区带来的8小时,时间戳指的是从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数(时间戳是从1970.1.1八点开始的哦)
至于为什么从1970年开始
很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。
disabledDate(date) {
let nowTime = new Date();
let month = nowTime.getMonth() + 1;
let year = nowTime.getFullYear();
if (month - 1 == 0) {
year = year - 1;
month = 12;
}
return date && date.valueOf() < (new Date(`${year}-${month}`) - 28800000);
},