| | |
| | | export const TimeDataUnit = { |
| | | DD: '天', |
| | | HH: '时', |
| | | mm: '分', |
| | | ss: '秒', |
| | | SSS: '毫秒', |
| | | }; |
| | | const SECOND = 1000; |
| | | const MINUTE = 60 * SECOND; |
| | | const HOUR = 60 * MINUTE; |
| | | const DAY = 24 * HOUR; |
| | | export const parseTimeData = function (time) { |
| | | const days = Math.floor(time / DAY); |
| | | const hours = Math.floor((time % DAY) / HOUR); |
| | | const minutes = Math.floor((time % HOUR) / MINUTE); |
| | | const seconds = Math.floor((time % MINUTE) / SECOND); |
| | | const milliseconds = Math.floor(time % SECOND); |
| | | return { |
| | | DD: days, |
| | | HH: hours, |
| | | mm: minutes, |
| | | ss: seconds, |
| | | SSS: milliseconds, |
| | | }; |
| | | }; |
| | | export const isSameSecond = function (time1, time2) { |
| | | return Math.floor(time1 / 1000) === Math.floor(time2 / 1000); |
| | | }; |
| | | export const parseFormat = function (time, format) { |
| | | const obj = { |
| | | 'D+': Math.floor(time / 86400000), |
| | | 'H+': Math.floor((time % 86400000) / 3600000), |
| | | 'm+': Math.floor((time % 3600000) / 60000), |
| | | 's+': Math.floor((time % 60000) / 1000), |
| | | 'S+': Math.floor(time % 1000), |
| | | }; |
| | | const timeList = []; |
| | | let timeText = format; |
| | | Object.keys(obj).forEach((prop) => { |
| | | if (new RegExp(`(${prop})`).test(timeText)) { |
| | | timeText = timeText.replace(RegExp.$1, (match, offset, source) => { |
| | | const v = `${obj[prop]}`; |
| | | let digit = v; |
| | | if (match.length > 1) { |
| | | digit = (match.replace(new RegExp(match[0], 'g'), '0') + v).substr(v.length); |
| | | } |
| | | const unit = source.substr(offset + match.length); |
| | | const last = timeList[timeList.length - 1]; |
| | | if (last) { |
| | | const index = last.unit.indexOf(match); |
| | | if (index !== -1) { |
| | | last.unit = last.unit.substr(0, index); |
| | | } |
| | | } |
| | | timeList.push({ digit, unit, match }); |
| | | return digit; |
| | | }); |
| | | } |
| | | }); |
| | | return { timeText, timeList }; |
| | | }; |
| | | export const TimeDataUnit={DD:"天",HH:"时",mm:"分",ss:"秒",SSS:"毫秒"};const SECOND=1e3,MINUTE=6e4,HOUR=36e5,DAY=24*HOUR;export const parseTimeData=function(t){return{DD:Math.floor(t/DAY),HH:Math.floor(t%DAY/HOUR),mm:Math.floor(t%HOUR/6e4),ss:Math.floor(t%6e4/1e3),SSS:Math.floor(t%1e3)}};export const isSameSecond=function(t,e){return Math.floor(t/1e3)===Math.floor(e/1e3)};export const parseFormat=function(t,e){const o={"D+":Math.floor(t/864e5),"H+":Math.floor(t%864e5/36e5),"m+":Math.floor(t%36e5/6e4),"s+":Math.floor(t%6e4/1e3),"S+":Math.floor(t%1e3)},r=[];let n=e;return Object.keys(o).forEach(t=>{new RegExp(`(${t})`).test(n)&&(n=n.replace(RegExp.$1,(e,n,s)=>{const a=`${o[t]}`;let l=a;e.length>1&&(l=(e.replace(new RegExp(e[0],"g"),"0")+a).substr(a.length));const h=s.substr(n+e.length),c=r[r.length-1];if(c){const t=c.unit.indexOf(e);-1!==t&&(c.unit=c.unit.substr(0,t))}return r.push({digit:l,unit:h,match:e}),l}))}),{timeText:n,timeList:r}}; |