后端服务器数据一般会返回时间戳,我们可以封装一个工具函数用来将时间戳转化为要展示的时间
utils.js
代码语言:javascript
复制/**
* Parse the time to string
* @param {(Object|string|number)} time
* @param {string} cFormat
* @returns {string}
*/
function parseTime(time, cFormat) {
if (arguments.length === 0) {
return null
}
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if ((typeof time === 'string') && (/^[0-9] $/.test(time))) {
time = parseInt(time)
}
if ((typeof time === 'number') && (time.toString().length === 10)) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|a) }/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
if (result.length > 0 && value < 10) {
value = '0' value
}
return value || 0
})
return time_str
}
代码语言:javascript
复制function formateDate() {
//获取年份
if(/(y )/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() '').substr(4 - RegExp.$1.length));
}
let o = {
'M ': date.getMonth() 1,
'd ': date.getDate(),
'h ': date.getHours(),
'm ': date.getMinutes(),
's ': date.getSeconds()
};
for(let k in o) {
if(new RegExp(`(${k})`).test(fmt)) {
let str = o[k] '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
}
}
return fmt
}
function padLeftZero(str) {
return ('00' str).substr(str.length)
}
function showDate(value) {
//将时间戳转换成Date对象
const date = new Date(value * 1000);
//格式化date
return formateDate(date, 'yyyy-MM-dd hh:mm:ss')
}