如题 我们在向服务器请求时间相关数据时 会返回一个unix格式的时间戳。那么怎么将他转为为正常时间呢 只需通过下面这个函数即可。
function formatDate(date, fmt) {
//获取年份
if (/(y+)/.test(fmt)) {
let dateY = date.getFullYear() + "";
//RegExp.$1 在判断中出现过,且是括号括起来的,所以 RegExp.$1 就是 "yyyy"
fmt = fmt.replace(RegExp.$1, dateY.substr(4 - RegExp.$1.length));
}
//获取其他
let o = {
"M+": date.getMonth() + 1,
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds()
};
for (const 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;
}
调用的padLeftZero也给出
function padLeftZero(str) {
return ("00" + str).substr(str.length);
}
可以看出这个转换函数主要还是使用了正则表达式去处理一些逻辑和转换。比较实用