JavaScript 倒计时
使用 moment 来简化输入的时间格式化过程。
import moment from "moment";
export const fromNow = (time, format = 'HH:mm:ss') => {
const _format = (value = {}) => format
.replace('HH', value.HH || '00')
.replace('mm', value.mm || '00')
.replace('ss', value.ss || '00')
.replace('H', value.H || '0')
.replace('m', value.m || '0')
.replace('s', value.s || '0');
if (!time) {
return _format();
}
const diff = moment(time).diff(moment());
if (diff <= 0) {
return _format();
}
const hoursScale = 1000 * 60 * 60;
const minutesScale = 1000 * 60;
const secondsScale = 1000;
const hours = parseInt(diff / hoursScale);
const minutes = parseInt((diff - hours * hoursScale) / minutesScale);
const seconds = parseInt(
(diff - hours * hoursScale - minutes * minutesScale) / secondsScale
);
const patchHours = hours < 10 ? '0' + hours : hours;
const patchMinutes = minutes < 10 ? '0' + minutes : minutes;
const patchSeconds = seconds < 10 ? '0' + seconds : seconds;
return _format({
HH: patchHours,
mm: patchMinutes,
ss: patchSeconds,
H: hours,
m: minutes,
s: seconds
});
}