方法如下:
/**
* 获取日期格式
*/
export function getDate(date: string | undefined | Date | number, format = 'Y-M-D h:m:s'): string {
if ((typeof date === 'string' && date.indexOf('T') > -1) || (typeof date === 'number' && date.toString().length === 13)) {
date = new Date(date)
}
if (!isDate(date) && typeof date !== 'object') {
return ''
}
let obj: any = {}
if (typeof date === 'object' && date.toString() !== '[object Object]') {
const [Y, M, D, h, m, s] = [date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()]
obj = { Y, M, D, h, m, s }
} else {
const [t1, t2] = (date as string).split(' ')
const [Y, M, D] = t1.split('-')
const [h, m, s] = t2 ? t2.split(':') : '0:0:0'
obj = { Y, M, D, h, m, s }
}
const reg = /Y|M|D|h|m|s/g
return format.replace(reg, rs => obj[rs].toString().padStart(2, '0'))
}
其中 上述使用到的isDate 为:
/**
* 是否日期
*/
export function isDate(str: any): boolean {
return /^\d{4}(-\d{1,2}){2}( \d{1,2}(:\d{1,2}){2})?$/.test(str)
}