时间的各种要求
补充说明:以下方法浏览器端没有问题,移动端会报错
报错信息为:日期格式不正确
解决方法如下:
startDate 就是某一天的年月日格式
startDate.setHours(0);
startDate.setMinutes(0);
startDate.setSeconds(0);
此处的startDate打印出来的结果就是:
endDate 就是某一天的年月日格式
endDate.setHours(23);
endDate.setMinutes(59);
endDate.setSeconds(59);
此处最终返回的日期格式是 中国标准时间的格式。这个格式也是带有时区的格式,与下方的格式(基本相同吧~~~~)
使用场景——获取当天凌晨的时间
new Date()
:获取当前的时间,标准时间格式
new Date().toLocaleDateString()
:获取当天的年月日格式
new Date(new Date().toLocaleDateString()).getTime()
:获取当天凌晨的毫秒数
new Date(new Date(new Date().toLocaleDateString()).getTime())
:获取当天凌晨的中国标准时间
new Date(new Date(new Date().toLocaleDateString()).getTime()).toISOString()
:获取当天凌晨时间的时区格式
使用场景——获取当天23:59:59的时间
new Date()
:获取当前的时间,标准时间格式
new Date().toLocaleDateString()
:获取当天的年月日格式
new Date(new Date().toLocaleDateString()).getTime()
:获取当天凌晨的毫秒数
new Date(new Date(new Date().toLocaleDateString()).getTime())
:获取当天凌晨的中国标准时间
new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1)
:获取当天23:59:59的中国标准时间
new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1).toISOString()
:获取当天23:59:59的时区格式
使用场景——获取本周的时间区间
getWeek() {
//按周日为一周的最后一天计算
var date = new Date();
//今天是这周的第几天
var today = date.getDay();
//上周日距离今天的天数(负数表示)
var stepSunDay = -today + 1;
// 如果今天是周日
if (today == 0) {
stepSunDay = -7;
}
// 周一距离今天的天数(负数表示)
var stepMonday = 7 - today;
var time = date.getTime();
var monday = new Date(time + stepSunDay * 24 * 3600 * 1000);
var sunday = new Date(time + stepMonday * 24 * 3600 * 1000);
//本周一的日期 (起始日期)
var startDate = this.transferDate(monday); // 日期变换
//本周日的日期 (结束日期)
var endDate = this.transferDate(sunday); // 日期变换
console.log("本周日期",startDate,endDate);
this.date = startDate;
this.dateEnd = endDate;
this.startTime = new Date(this.date + " 00:00:00").toISOString();
this.endTime = new Date((this.dateEnd +" 23:59:59")).toISOString();
}
此处的this.startTime 与this.endTime就是本周的时间区间。
使用场景——获取本月的时间区间
getMonth() {
// 获取当前月的第一天
var start = new Date();
start.setDate(1);
// 获取当前月的最后一天
var date = new Date();
var currentMonth = date.getMonth();
var nextMonth = ++currentMonth;
var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
var oneDay = 1000 * 60 * 60 * 24;
var end = new Date(nextMonthFirstDay - oneDay);
var startDate = this.transferDate(start); // 日期变换
var endDate = this.transferDate(end); // 日期变换
console.log("本月日期",startDate,endDate);
this.date = startDate;
this.dateEnd = endDate;
this.startTime = new Date(this.date + " 00:00:00").toISOString();
this.endTime = new Date((this.dateEnd +" 23:59:59")).toISOString();
}
使用场景——获取标准时间23:59:59的时区时间
new Date((标准时间格式:2020/08/30 +" 23:59:59")).toISOString()
注意23:59:59前面有个空格。
transferDate
的方法如下:
transferDate(date) {
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 0 && day <= 9) {
day = "0" + day;
}
var dateString = year + '-' + month + '-' + day;
return dateString;
},