vue 封装时间格式化和number精确度
//format.js 公用js /** * Parse the time to string * @param {(Object|string|number)} time * @param {string} format * @returns {string | null} */ //时间格式化 export function formatDate(time,format) { if (!time) return ""; var date=new Date(time); var year=date.getFullYear(); /* 在日期格式中,月份是从0开始的,因此要加0 * 使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05 * */ var month= date.getMonth()+1<10 ? "0"+(date.getMonth()+1) : date.getMonth()+1; var day=date.getDate()<10 ? "0"+date.getDate() : date.getDate(); var hours=date.getHours()<10 ? "0"+date.getHours() : date.getHours(); var minutes=date.getMinutes()<10 ? "0"+date.getMinutes() : date.getMinutes(); var seconds=date.getSeconds()<10 ? "0"+date.getSeconds() : date.getSeconds(); // 拼接 // return year+"-"+month+"-"+day+" "+hours+":"+minutes+":"+seconds; let result = '' switch (format) { case 'YYYY': result = year break case 'MM': result = month break case 'DD': result = day break case 'HH': result = hours break case 'mm': result = minutes break case 'ss': result = seconds break case 'HH:mm': result = `${hours}:${minutes}` break case 'HH:mm:ss': result = `${hours}:${minutes}:${seconds}` break case 'YYYY-MM': result = `${year}-${month}` break case 'YYYY-MM-DD': result = `${year}-${month}-${day}` break case 'YYYY/MM/DD': result = `${year}/${month}/${day}` break case 'YYYY-MM-DD HH:mm': result = `${year}-${month}-${day} ${hours}:${minutes}` break case 'YYYY-MM-DD HH:mm:ss': result = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` break case 'YYYY-MM-DD 00:00:00': result = `${year}-${month}-${day} 00:00:00` break case 'YYYY/MM/DD': result = `${year}/${month}/${day}` break case 'YYYY/MM/DD HH:mm': result = `${year}/${month}/${day} ${hours}:${minutes}` break } return result; } /** * Parse the time to string * @param {(Object|string|number)} value * @param {string} format * @returns {string | null} */ //时间戳转化 export function timestamp(value,format){ if (!value) return ""; const time = new Date(value * 1000); const Y = time.getFullYear() const M = (time.getMonth() + 1).toString().padStart(2, '0') const D = time.getDate().toString().padStart(2, '0') const h = time.getHours().toString().padStart(2, '0') const m = time.getMinutes().toString().padStart(2, '0') const s = time.getSeconds().toString().padStart(2, '0') // return `${Y}-${M}-${D} ${h}:${m}:${s}` let result = '' switch (format) { case 'YYYY': result = Y break case 'MM': result = M break case 'DD': result = D break case 'HH': result = h break case 'mm': result = m break case 'ss': result = s break case 'HH:mm': result = `${h}:${m}` break case 'HH:mm:ss': result = `${h}:${m}:${s}` break case 'YYYY-MM': result = `${Y}-${M}` break case 'YYYY-MM-DD': result = `${Y}-${M}-${D}` break case 'YYYY/MM/DD': result = `${Y}/${M}/${D}` break case 'YYYY-MM-DD HH:mm': result = `${Y}-${M}-${D} ${h}:${m}` break case 'YYYY-MM-DD HH:mm:ss': result = `${Y}-${M}-${D} ${h}:${m}:${s}` break case 'YYYY-MM-DD 00:00:00': result = `${Y}-${M}-${D} 00:00:00` break case 'YYYY/MM/DD': result = `${Y}/${M}/${D}` break case 'YYYY/MM/DD HH:mm': result = `${Y}/${M}/${D} ${h}:${m}` break } return result; } /** * Parse the time to string * @param {(Object|string|number)} val * @param {string} digit * @returns {string | null} */ //数字类型 // 判断是否为数值 true 数值类型 false 其他 export function formatNum(val, digit,type) { // 异常值判断 if (val === null || isNaN(val) || val === undefined || val === '' || val === ' ') return '' // 数值 或 字符串数值 val = parseFloat(val).toFixed(digit) // 删除尾部的‘0’ // if (val.endsWith('0')) { // val = val.substring(0, val.lastIndexOf('0')) // } // 删除尾部的‘.’ if (val.endsWith('.')) { val = val.substring(0, val.lastIndexOf('.')) } // if(type==='money'){ //格式为金额形式的 // var intPart = Number(val).toFixed(0); //获取整数部分 // var intPartFormat = intPart // .toString() // .replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); //将整数部分逢三一断 // var floatPart = ".00"; //预定义小数部分 // var value2Array = val.split("."); // //=2表示数据有小数位 // if (value2Array.length == 2) { // floatPart = value2Array[1].toString(); //拿到小数部分 // console.log('-intPartFormat--',intPartFormat + "." + floatPart + "0") // if (floatPart.length == 1) { // //补0, // val=intPartFormat + "." + floatPart + "0"; // } else { // val= intPartFormat + "." + floatPart; // } // } else { // console.log('-intPartFormat + floatPart--',intPartFormat + floatPart) // val=intPartFormat + floatPart; // } // } return val }
//引用 vue文件 formatDateHandle(value, item) { //value 参数值 item配置文件时间格式{dateFormat: 'YYYY-MM-DD HH:mm:ss'} if (!value) return ''; this.accountDetails[item.field] = formatDate(value, item.dateFormat); return this.accountDetails[item.field]; }, formatNumHandle(value, item) { //value 参数值 item配置文件时间格式 pattern小数点精确度{numeric{type: 'money',pattern: '2'}} if (!value) return ''; this.accountDetails[item.field] = formatNum(value, item.numeric.pattern, item.numeric.type); return this.accountDetails[item.field]; }