export const deepCopy = (obj) => { if (typeof obj === 'object' && obj !== null) { var result = Array.isArray(obj) ? [] : {}; for (var key in obj) { if (obj.hasOwnProperty(key)) { if (typeof obj[key] === 'object') { result[key] = deepCopy(obj[key]); //递归复制 } else { result[key] = obj[key]; } } } } else { result = obj } return result; }export function parseTime(date, formatStr) { if (!date) { return '' } let d date = date || new Date() if (date instanceof Date) { // 传入Date对象 d = date } else if (typeof date === 'string') { // 日期格式 date = date.replace(/(\d{4})(\d{1,2})(\d{1,2})/, (a, b, c, d) => { return `${b}-${c}-${d}` }) d = new Date(switchConnectSign(date, 0)) } else if (typeof date === 'number') { // 时间戳 d = new Date(date) } if (!formatStr) { // 未传入格式 formatStr = 'Y-M-D H:F:S' // 未传入格式 // formatStr = 'Y-M-D H:F:S'; } const formatNumStr = num => (num < 10 ? '0' + num : num) return formatStr.replace(/Y|y|M|m|D|d|H|h|F|f|S|s/g, v => { switch (v) { case 'y': // yyyy => yy return (d.getFullYear() + '').slice(2) case 'Y': // yyyy return d.getFullYear() case 'm': // m return d.getMonth() + 1 case 'M': // mm return formatNumStr(d.getMonth() + 1) case 'd': // d return d.getDate() case 'D': // dd return formatNumStr(d.getDate()) case 'h': // h return d.getHours() case 'H': // hh return formatNumStr(d.getHours()) case 'f': // f return d.getMinutes() case 'F': // ff return formatNumStr(d.getMinutes()) case 's': // s return d.getSeconds() case 'S': // ss return formatNumStr(d.getSeconds()) } })}