/**
* 计算剩余时间
* @author 陈随易 <https://chensuiyi.me>
* @category datetime
* @alias yd_datetime_leftTime
* @param {number} seconds 剩余时间秒数
* @returns {object} 返回剩余时间的不同单位值
*/
export default (seconds) => {
const absTime = Math.abs(seconds);
const parsed = {
years: 0,
months: 0,
weeks: 0,
days: 0,
hours: 0,
minutes: 0,
seconds: 0,
text: '',
type: ''
};
// 年
parsed.years = ~~(absTime / 60 / 60 / 24 / 365);
// 月
parsed.months = ~~(absTime / 60 / 60 / 24 / 30);
// 周
parsed.weeks = ~~(absTime / 60 / 60 / 24 / 7);
// 天
parsed.days = ~~(absTime / 60 / 60 / 24);
// 时
parsed.hours = ~~(absTime / 60 / 60);
// 分
parsed.minutes = ~~(absTime / 60);
// 秒
parsed.seconds = absTime;
if (parsed.years > 0) {
parsed.text = parsed.years + ' 年';
} else if (parsed.months > 0) {
parsed.text = parsed.months + ' 月';
} else if (parsed.weeks > 0) {
parsed.text = parsed.weeks + ' 周';
} else if (parsed.days > 0) {
parsed.text = parsed.days + ' 天';
} else if (parsed.hours > 0) {
parsed.text = parsed.hours + ' 小时';
} else if (parsed.minutes > 0) {
parsed.text = parsed.minutes + ' 分钟';
} else if (parsed.seconds > 0) {
parsed.text = parsed.seconds + ' 秒';
} else {
parsed.text = '0 秒';
}
if (seconds > 0) {
parsed.type = '还剩';
} else {
parsed.type = '已过';
}
return parsed;
};