/** * 功能:全局过滤器 * 作者:小莫唐尼 * 邮箱:studio@925i.cn * 时间:2022年07月21日 17:39:04 * 版本:v0.1.0 * 修改记录: * 修改内容: * 修改人员: * 修改时间: */ export default { /** * 功能描述:时间格式化,将指定的时间戳(或正常的日期)转换为带格式的日期 * * 参数说明: * 1.支持格式化 yyyy年MM月dd日 HH点mm分ss秒 星期w q季 * 2.对象形式传入 { d:'2021-06-04',f:'yyyy年' } d是必传项,f可不传(默认yyyy-MM-dd HH:mm:ss) * 使用示例: * 1:{{ dateTimeParamName | formatTime }} * 2:{{ { d: '2021-06-04', f: 'yyyy' } | formatTime }} * 3:{{ { d: dateTimeParamName, f: 'yyyy年MM月dd日 HH点mm分ss秒 星期w q季' } | formatTime }} * 特别说明: 由于uniapp中的filter 不支持多参数,但是允许传入对象的形式,故以此方式实现! */ formatTime: function(data) { let _dateTime = new Date(data); let _fmt = 'yyyy-MM-dd HH:mm:ss'; if (_dateTime == 'Invalid Date') { if (data.d == undefined || data.d == null || data.d == "") { console.error('日期参数不正确,传入的参数列表:', data); return '' }; _dateTime = new Date(data.d); if (_dateTime == 'Invalid Date') { console.error('日期参数不正确,传入的参数列表:', data); return '111' } if (data.hasOwnProperty('f')) { _fmt = data.f } } const _weekDays = ["日", "一", "二", "三", "四", "五", "六"]; const _seasons = ["冬", "春", "夏", "秋"]; const o = { "M+": _dateTime.getMonth() + 1, //月份 "d+": _dateTime.getDate(), //日 "H+": _dateTime.getHours(), //小时 "m+": _dateTime.getMinutes(), //分 "s+": _dateTime.getSeconds(), //秒 "w+": _weekDays[_dateTime.getDay()], // 星期几 "q+": _seasons[Math.floor((_dateTime.getMonth() + 3) / 3)], //季度 S: _dateTime.getMilliseconds(), //毫秒 }; if (/(y+)/.test(_fmt)) { _fmt = _fmt.replace( RegExp.$1, (_dateTime.getFullYear() + "").substr(4 - RegExp.$1.length) ); } for (let 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) ); } } return _fmt; }, };