107 lines
2.7 KiB
JavaScript
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
|
|
}
|
|
|
|
|
|
|
|
|
|
|