fenzhi-utils
Version:
分值前端项目的js函数库
66 lines (63 loc) • 2.57 kB
JavaScript
/**
* 格式化时间
* @param {string,date} date 时间
* @param {string} fmt 指定的格式化格式
* @returns {string} ''
*/
/* 下面是测试用例
CustomDateFtt(1565059668200,"yyyy-MM-dd hh:mm:ss");// '2019-08-06 10:47:48'
CustomDateFtt(1565059668200,"yyyy-MM-dd");// '2019-08-06'
CustomDateFtt('2022-02-14T13:30:00.000Z',"yyyy-MM-dd");// '2019-08-06'
CustomDateFtt(new Date(),"yyyy-MM-dd");// '2019-08-06'
CustomDateFtt(new Date('2022-01-01'),"yyyy-MM-dd");// '2022-01-01'
CustomDateFtt(null, 'yyyy-MM-dd hh:mm:ss');// ''
CustomDateFtt(undefined, 'yyyy-MM-dd hh:mm:ss');// ''
CustomDateFtt('', 'yyyy-MM-dd hh:mm:ss');// ''
CustomDateFtt('2022-01-01', 'yyyy-MM-dd');// '2022-01-01'
CustomDateFtt('2022-01-01 12:34:56', 'yyyy-MM-dd hh:mm:ss');// '2022-01-01 12:34:56'
CustomDateFtt('2022/01/01 12:34:56', 'yyyy-MM-dd hh:mm:ss');// '2022-01-01 12:34:56'
CustomDateFtt('2022-01-01 12:34:56', 'yyyy/MM/dd hh:mm:ss');// '2022/01/01 12:34:56'
CustomDateFtt('2022-01-01 12:34:56.123', 'yyyy-MM-dd hh:mm:ss.SSS');// '2022-01-01 12:34:56.123SS'
CustomDateFtt('2022-01-01 12:34:56.123', 'yyyy-MM-dd hh:mm:ss.S');// '2022-01-01 12:34:56.123'
CustomDateFtt('2022-01-01 12:34:56.123', 'yyyy-MM-dd hh:mm:ss.SS');// '2022-01-01 12:34:56.123S'
CustomDateFtt('2022-01-01 12:34:56.123', 'yyyy-MM-dd hh:mm:ss.SSSS');// '2022-01-01 12:34:56.123SSS'
CustomDateFtt('2022-01-01 12:34:56.123', 'yyyy-MM-dd hh:mm:ss.SSSSS'); // '2022-01-01 12:34:56.123SSSS'
*/
export function CustomDateFtt(date, fmt) {
if (date != null && date != '' && date != undefined) {
if (typeof date == 'string') {
if (date.includes('T')) {
date = new Date(date);
} else {
date = date.replace(/-/g, '/');
}
}
var date = new Date(date);
var o = {
'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(), //毫秒
};
o.S < 100 && (o.S = o.S < 10 ? '00' + o.S : '0' + o.S);
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(date.getFullYear() + '').substr(4 - RegExp.$1.length)
);
for (var k in o)
if (new RegExp('(' + k + ')').test(fmt))
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1
? o[k]
: ('00' + o[k]).substr(('' + o[k]).length)
);
} else {
fmt = '';
}
return fmt;
}