|
/*
|
* @Author: daidai
|
* @Date: 2021-12-16 14:40:18
|
* @LastEditors: Please set LastEditors
|
* @LastEditTime: 2022-04-19 14:44:14
|
* @FilePath: \web-pc\src\lib\dd-moment.js
|
*/
|
|
|
const DDmoment = function (date) {
|
let time;
|
if (!date) {
|
time = new Date()
|
}else if(date){
|
time=new Date(date);
|
}
|
return {
|
time,
|
format,
|
subtract,
|
getTime,
|
}
|
}
|
/**
|
* @content 前多少天
|
* @param days 天 || years 年 || months 月 || weeks 周
|
* @returns
|
*/
|
function subtract(num, type) {
|
let time = this.time
|
time.setTime(time.getTime()-getNeedTime(num, type))
|
time=new Date(time)
|
return {
|
time,
|
format,
|
getTime
|
}
|
}
|
/**
|
* @param Yy年 || M 月 || Dd 日 || Hh 时 || m 分 || Ss 秒
|
* @returns
|
*/
|
function format(fmt) {
|
let date = this.time
|
let ret;
|
const opt = {
|
"Y+": date.getFullYear().toString(), // 年
|
"y+": date.getFullYear().toString(), // 年
|
"M+": (date.getMonth() + 1).toString(), // 月
|
"d+": date.getDate().toString(), // 日
|
"D+": date.getDate().toString(), // 日
|
"h+": date.getHours().toString(), // 时
|
"H+": date.getHours().toString(), // 时
|
"m+": date.getMinutes().toString(), // 分
|
"S+": date.getSeconds().toString(), // 秒
|
"s+": date.getSeconds().toString() // 秒
|
// 有其他格式化字符需求可以继续添加,必须转化成字符串
|
};
|
for (let k in opt) {
|
ret = new RegExp("(" + k + ")").exec(fmt);
|
if (ret) {
|
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
|
};
|
};
|
return fmt;
|
}
|
//时间戳转时间
|
function getTime() {
|
return new Date(this.time)
|
}
|
//获取需要的时间
|
function getNeedTime(num, type) {
|
let time=0
|
switch (type) {
|
case "days":
|
time= 3600 * 1000 * 24 * num;
|
break;
|
case "years":
|
time=3600 * 1000 * 24 *365 *num;
|
break;
|
case "months":
|
time = 3600 * 1000 * 24 *30* num;
|
break;
|
case "weeks":
|
time= 3600 * 1000 * 24 *7* num;
|
break;
|
default:
|
break;
|
}
|
return time;
|
}
|
export default DDmoment
|