UNPKG

trs-ui-app

Version:

TRS 可视化低代码平台 前端移动 UI 组件库 👍

39 lines (36 loc) 1.69 kB
import format from '../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/format/index.js'; import intervalToDuration from '../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/intervalToDuration/index.js'; const duration = (n) => { const past = typeof n === 'string' ? new Date(n.replace(/-/g, '/')) : new Date(n); const time = past.getTime(); const today = new Date(); const now = today.getTime(); if (!time) return n; const delta = (now - time) / 1000; if (delta < 0) return format(past, 'yyyy-MM-dd HH:mm'); if (delta < 60) return '刚刚'; if (delta < 60 * 60) return `${Math.floor(delta / 60)}分钟前`; if (delta < 60 * 60 * 24) return `${Math.floor(delta / (60 * 60))}小时前`; const year = today.getFullYear(); const pastYear = past.getFullYear(); return year === pastYear ? format(past, 'MM-dd HH:mm') : format(past, 'yyyy-MM-dd HH:mm'); }; const parseDate = (time, dateFormat) => { const past = typeof time === 'string' ? new Date(time.replace(/-/g, '/')) : new Date(time); return dateFormat === 'duration' ? duration(time) : format(past, dateFormat); }; const formatTime = (seconds) => { const duration = intervalToDuration({ start: 0, end: Number(seconds) * 1000 }); const hour = duration.hours.toString().padStart(2, '0'); const minute = duration.minutes.toString().padStart(2, '0'); const second = duration.seconds.toString().padStart(2, '0'); return Number(seconds) < 3600 ? `${minute}:${second}` : `${hour}:${minute}:${second}`; }; export { duration, formatTime, parseDate };