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) {
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'
}
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':
return (d.getFullYear() + '').slice(2)
case 'Y':
return d.getFullYear()
case 'm':
return d.getMonth() + 1
case 'M':
return formatNumStr(d.getMonth() + 1)
case 'd':
return d.getDate()
case 'D':
return formatNumStr(d.getDate())
case 'h':
return d.getHours()
case 'H':
return formatNumStr(d.getHours())
case 'f':
return d.getMinutes()
case 'F':
return formatNumStr(d.getMinutes())
case 's':
return d.getSeconds()
case 'S':
return formatNumStr(d.getSeconds())
}
})
}