//日期格式化 function DateFormat(date, format) { if (!date) { return ''; } if (!format) { format = 'yyyy-MM-dd HH:mm:ss'; } // 处理参数默认值 if (typeof date === 'string' || typeof date === 'number') { date = new Date(date); } date = date instanceof Date ? date : new Date(); format = format || 'yyyy-MM-dd'; // 检查日期是否有效 if (isNaN(date.getTime())) { return 'Invalid Date'; } // 定义格式化映射 const formatMap = { 'yyyy': date.getFullYear(), 'MM': String(date.getMonth() + 1).padStart(2, '0'), 'dd': String(date.getDate()).padStart(2, '0'), 'HH': String(date.getHours()).padStart(2, '0'), 'mm': String(date.getMinutes()).padStart(2, '0'), 'ss': String(date.getSeconds()).padStart(2, '0'), 'SSS': String(date.getMilliseconds()).padStart(3, '0'), 'M': date.getMonth() + 1, 'd': date.getDate(), 'H': date.getHours(), 'm': date.getMinutes(), 's': date.getSeconds(), 'S': date.getMilliseconds() }; // 替换格式字符串中的占位符 return format.replace(/(yyyy|MM|dd|HH|mm|ss|SSS|M|d|H|m|s|S)/g, (match) => { return formatMap[match]; }); } //日期加减 function DateAdd(datePart, number, date) { // 创建日期的副本,避免修改原日期对象 const newDate = new Date(date.getTime()); // 根据不同的时间单位添加相应的值 switch (datePart.toLowerCase()) { case 'year': newDate.setFullYear(newDate.getFullYear() + number); break; case 'month': newDate.setMonth(newDate.getMonth() + number); break; case 'day': newDate.setDate(newDate.getDate() + number); break; case 'hour': newDate.setHours(newDate.getHours() + number); break; case 'minute': newDate.setMinutes(newDate.getMinutes() + number); break; case 'second': newDate.setSeconds(newDate.getSeconds() + number); break; default: throw new Error('不支持的datePart参数。支持的参数: Year, Month, Day, Hour, Minute, Second'); } return newDate; } //将字节转换成0.53kb 10.13MB 1GB这样的友好单位 function formatBytes(bytes, decimals = 2) { // 处理0字节的情况 if (bytes === 0) return '0 B'; // 定义单位和换算比例 const k = 1024; const dm = decimals < 0 ? 0 : decimals; const sizes = ['B', 'KB', 'MB', 'GB', 'TB']; // 计算最合适的单位 const i = Math.floor(Math.log(bytes) / Math.log(k)); // 格式化并返回结果 return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; } //数组某个字段取唯一值 function getUniqueValues(dataSource, field) { if(!field){ return []; } // 使用Set来存储唯一值,因为Set会自动去重 const uniqueValues = new Set(); // 遍历数据源 for (const item of dataSource) { // 检查对象是否包含指定字段 if (item.hasOwnProperty(field)) { uniqueValues.add(item[field]); } } // 将Set转换为数组并返回 return Array.from(uniqueValues); } export default{ DateFormat:DateFormat, DateAdd:DateAdd, formatBytes:formatBytes, getUniqueValues:getUniqueValues }