方法如下:
/**
?*?獲取日期格式
?*/
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)
}