时间格式化,获取最近七天时间,获取昨天,明天得时间等
时间格式化
整理优化时间类发现之前发现大部分这样写的,获取当前日期,再一个个取年,月,日,再拼接成自己想要得格式
let curDate = new Date()
let yyyy = curDate.getFullYear()
let mm = curDate.getMonth()+1
mm = mm<10 ? ("0"+mm) :mm
let dd = curDate.getDate()
dd = dd<10?("0"+dd) : dd
let lastDate = `${yyyy}${mm}${dd}`
这种直接绑定在Date原型上得方法更便捷
let now = new Date().Format('yyyyMMdd')
Date.prototype.Format = function (fmt) {
if (fmt == undefined || fmt == null || fmt == "")
return "";
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
};
之前获取昨天,前天或者明天后天得时间大部分是用10006060*24 来计算得,现在也可以用下面得方法
//获取当前日期的某一天日期(负数为过去的时间,正数为后面的时间) 格式:20240123
//例:当前日期为"2024-01-22",getYesterday(-1)为2024-01-21, getYesterday(1)为2024-01-23,
function getYesterday(num) {
let day = new Date();
day.setDate(day.getDate() + num);
let day2 = day.Format("yyyy-MM-dd")
console.log(day2);
return day2.replace(/-/g, '')
}
getYesterday(1)
获取指定日期的前面或后面某一天日期
/**
* 获取指定日期的前面或后面某一天日期
* @param {String} date 指定的日期
* @param {Number} day 几天
* @returns 几天后或前的日期
*/
export function getNextDate(date,day) {
let dd = '';
let dateType = date.includes('-');
if(dateType) {
dd = new Date(date);
} else {
let farmatDate = date.slice(0,4) + '-'+ date.slice(4,6) +'-'+ date.slice(6);
dd = new Date(farmatDate);
}
dd.setDate(dd.getDate() + day);
let y = dd.getFullYear();
let m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
let d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
return dateType? (y + "-" + m + "-" + d): (y + "" + m + "" + d + "");
};