formatter 时间参数处理
const formatter = function(str, fmt) {
if (!str) {
return '-'
}
if (typeof str === 'string') {
// 后端吐的时间戳可能为Date(111111111)
// 转换标准格式
str = str
.replace(/^\/Date\((\d+)\)\/$/gi, '$1')
.replace(/\.\d+$/, '')
.replace(/-/g, '/')
.replace(/T/, ' ')
if (!isNaN(str)) {
str = parseInt(str)
}
}
fmt = fmt || 'YYYY-MM-DD hh:mm'
const date = new Date(str)
if (isNaN(date.getTime())) {
return str
}
const rules = {
'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(), // 毫秒
T: 'T'
}
if (/(Y+)/i.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (`${date.getFullYear()}`).substr(4 - RegExp.$1.length))
}
for (const key in rules) {
if (new RegExp(`(${key})`).test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1 ? rules[key] : (`00${rules[key]}`).substr((`${rules[key]}`).length)
)
}
}
return fmt
}
module.exports = formatter
注:这是dateFormat.js 文件,位于 utils 文件下