Files
SmartOpsWeb/src/views/custom-query/topo/utils/date.js
2024-08-18 22:21:18 +08:00

107 lines
2.7 KiB
JavaScript

//时间转换为String类型
const simpleDateFormat=(pattern)=> {
const fmt = new Object();
fmt.pattern = pattern;
fmt.parse = function (source) {
try {
return new Date(source);
} catch (e) {
console.log("字符串 " + source + " 转时间格式失败!");
return null;
}
};
fmt.format = function (date) {
if (typeof (date) == "undefined" || date == null || date == "") {
return "";
}
try {
date = new Date(date);
} catch (e) {
console.log("时间 " + date + " 格式化失败!");
return "";
}
let strTime = this.pattern;//时间表达式的正则
const o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"H+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(strTime)) {
strTime = strTime
.replace(RegExp.$1, (date.getFullYear() + "")
.substr(4 - RegExp.$1.length));
}
for (const k in o) {
if (new RegExp("(" + k + ")").test(strTime)) {
strTime = strTime.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return strTime;
};
return fmt;
}
//用于一个函数有多个时间格式转换
export const simpleDateMoreFormat=(date, formatStr) =>{
console.log(date,formatStr)
const fmt = simpleDateFormat(formatStr);
date = fmt.parse(date)
return fmt.format(date)
}
//时间格式化为yyyy.MM
const simpleDateFormatByDot=(date) =>{
const fmt = simpleDateFormat("yyyy.MM");
date = fmt.parse(date)
return fmt.format(date)
}
//时间格式化为yyyy-MM
const simpleDateFormatByLine=(date) =>{
const fmt = simpleDateFormat("yyyy-MM");
date = fmt.parse(date)
return fmt.format(date)
}
//时间格式化为yyyy-MM-dd
const simpleDateFormatByMoreLine=(date) =>{
const fmt = simpleDateFormat("yyyy-MM-dd");
date = fmt.parse(date)
return fmt.format(date)
}
//用于list表里每条记录中的startDate,endDate,格式化为yyyy.MM
const converListDateByDot=(list) =>{
for (const item of list) {
item.startDate = simpleDateFormatByDot(item.startDate);
item.endDate = simpleDateFormatByDot(item.endDate);
}
}
//用于data.startDate,data.endDate,格式化为yyyy-MM
const converListDateByLine=(date) =>{
data.startDate = simpleDateFormatByLine(data.startDate);
data.endDate = simpleDateFormatByLine(data.endDate);
}
export default {
simpleDateFormat,
simpleDateMoreFormat,
simpleDateFormatByDot,
simpleDateFormatByLine,
simpleDateFormatByMoreLine,
converListDateByDot,
converListDateByLine
}