项目中遇到的一些关于时间的问题
一天的毫秒数
var time = 1000*60*60*24;
取消element中dialog遮罩层的事件
:close-on-click-modal="false"
ele时间控件禁止选当前月的前一个月,前两个月moth-1
pickerOptions: {
disabledDate(time) {
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
if (month < 10) {
month = "0" + month;
}
if (month == 0) {
month = 12;
year = year - 1;
}
let a = year + "," + month;
var startDate = new Date(a);
return time.getTime() < startDate;
},
},
结束日期不能超过开始日期
disabledDate: (time) => {
if (this.value1) {
return time.getTime() < new Date(this.value1).getTime();
}
},
禁止选择今天之前或包含今天
time.getTime获取到12月1日的时间戳,小于Date.now()就是之前的被禁止
pickerOptions: {
disabledDate(time) {
//禁止用户选择今天之前的日期,包含今天。
return time.getTime() <= (Date.now());
//禁止用户选择今天之前的日期,不包含今天。
return time.getTime() < (Date.now()-(24 * 60 * 60 * 1000));
}
}
不能超过开始日期也不能大于当前日期
disabledDate: (time) => {
if (this.value3) {
let a = time.getTime() < new Date(this.value3).getTime();//限前 限制过去的30天内
// let b = time.getTime() > Date.now() - 3600 * 1000 * 24 * 60; //限制不能超过今天 限后
// return a || b;
return a;
}
},
前后默认时间间隔一周
created() {
// 默认起始时间
var time = new Date().getTime() - 7 * 24 * 60 * 60 * 1000;
var tragetTime = new Date(time);
var month = tragetTime.getMonth();
var day = tragetTime.getDate();
tragetTime =
tragetTime.getFullYear() +
"-" +
(tragetTime.getMonth() > 9
? tragetTime.getMonth() + 1
: "0" + (tragetTime.getMonth() + 1)) +
"-" +
(tragetTime.getDate() > 9
? tragetTime.getDate()
: "0" + tragetTime.getDate());
this.value1 = tragetTime;
var day2 = new Date();
day2.setTime(day2.getTime());
var s2 =
day2.getFullYear() + "-" + (day2.getMonth() + 1) + "-" + day2.getDate();
this.value2 = s2;
},
获取上个月的最后一天
var date = new Date();
var day = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
//上个月的年月日
var endDay =
new Date(new Date().getFullYear(), new Date().getMonth()-1, day);
var monthFirstDay = new Date(currentYear,currentMonth,1); //当前月的第一天
var oneDay=1000*60*60*24; //一天的毫秒数
oneMonthFirstDay = new Date(monthFirstDay-oneDay); //当前月的第一天减去一天
获取第前三个月的月份
if(currentMonth < 3){
currentYear -= 1; //年份减1
threeMonth = currentMonth + 12 - 3; //当前月的前三个月
} else {
threeMonth = currentMonth - 3; //当前月的前三个月
}
new Date中有三个参数时,第三个参数为0是当前月的最后一天
//三个参数
new Date('2020','2','0')
Sat Feb 29 2020 00:00:00 GMT+0800 (中国标准时间)
new Date('2020','2','1')
Sun Mar 01 2020 00:00:00 GMT+0800 (中国标准时间)
new Date('2020','2','3')
Tue Mar 03 2020 00:00:00 GMT+0800 (中国标准时间)
new Date('2020','2','-1')
Fri Feb 28 2020 00:00:00 GMT+0800 (中国标准时间)
//一个参数
new Date('2020-2-1')
Sat Feb 01 2020 00:00:00 GMT+0800 (中国标准时间)
禁止选择当天以后的时间
disabledDate(time) {
return time.valueOf() >= new Date()
},