js 时间自定义格式获取
class date {
time = 0;
constructor(...date) {
//由于js中月份是从0开始,所以如果有月份先减一
if (date[1]) {
date[1]--
}
this.time = date[0] ? Date.parse(...date) : new Date().getTime();
}
/**
* 获取相隔x天的时间
*/
diff(day = 0) {
this.time = this.time + (day * 60 * 60 * 24 * 1000)
return this
}
/**
* 获取xx天前、xx月前这种格式
*/
getDiffFormat() {
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var month = day * 30;
var year = day * 365;
var now = new Date().getTime();
var diffValue = now - this.time;
var result;
if (diffValue < 0) {
return;
}
var yearC = diffValue / year;
var monthC = diffValue / month;
var weekC = diffValue / (7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute;
if (yearC >= 1) {
result = "" + parseInt(yearC) + "年前";
} else if (monthC >= 1) {
result = "" + parseInt(monthC) + "月前";
} else if (weekC >= 1) {
result = "" + parseInt(weekC) + "周前";
} else if (dayC >= 1) {
result = "" + parseInt(dayC) + "天前";
} else if (hourC >= 1) {
result = "" + parseInt(hourC) + "小时前";
} else if (minC >= 1) {
result = "" + parseInt(minC) + "分钟前";
} else
result = "刚刚";
return result;
}
/**
* 获取自定义时间格式
* @param {String} format 时间格式
*/
get(format = "yyyy-M-d h:i:s") {
let date = new Date(this.time);
var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
var minute = date.getMinutes(),
second = date.getSeconds(),
month = date.getMonth() + 1,
day = date.getDate();
minute < 10 && (minute = "0" + minute.toString());
second < 10 && (second = "0" + second.toString());
month < 10 && (month = "0" + month.toString());
day < 10 && (day = "0" + day.toString());
var formatList = {
"y+": date.getFullYear(), //年份
"M+": month, //月份
"m+": month,
"d+": day, //日
"w+": weeks[date.getDay()], //星期
"h+": date.getHours(), //小时
"i+": minute, //分
"s+": second, //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds(), //毫秒
"timestamp": date.getTime() //时间戳
};
for (var item in formatList) {
if (new RegExp("(" + item + ")").test(format)) {
format = format.replace(RegExp.$1, formatList[item]);
}
}
return format;
}
}
使用方式:
console.log(new date().get("yyyy-M-d h:i:s")) //2020-12-25 22:11:33
console.log(“获取两天后的时间:” + new date().diff(2).get()) //获取两天后的时间:2020-12-27 22:11:33
console.log(“获取两天前的时间:” + new date().diff(-2).get()) //获取两天前的时间:2020-12-23 22:11:33
console.log(new date(“2020-12-23 22:11:33”).get()) //两天前
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 孤鸿渺影博客!


