ascor
Version:
一些常用的简单的js工具
43 lines (42 loc) • 1.35 kB
JavaScript
import { isNumber, isString, isEmpty } from "../is/index";
/**
* 时间格式化
* @param {Date | Number} date 时间对象,如new Date(),new Date('2019/05/05 08:08:08') 或时间戳 如:1596507000
* @param {String} fmt 格式,如”YYYY-mm-dd HH:MM:SS“
* @return 返回格式化的字符串
*/
export const dateFormat = (date = new Date(), fmt = "YYYY-mm-dd HH:MM") => {
if (isNumber(date)) {
date = new Date(date);
}
if (isString(date)) {
if (!isNaN(date)) {
date = new Date(Number(date));
}
else {
date = new Date(date.replace(/\-+/g, "/"));
}
}
if (!(date instanceof Date) || isNaN(date.getTime())) {
return date;
}
if (isEmpty(fmt)) {
return date;
}
let opt = {
"Y+": date.getFullYear().toString(),
"y+": date.getFullYear().toString(),
"m+": (date.getMonth() + 1).toString(),
"d+": date.getDate().toString(),
"H+": date.getHours().toString(),
"M+": date.getMinutes().toString(),
"S+": date.getSeconds().toString(),
};
for (let k in opt) {
let ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"));
}
}
return fmt;
};