自己写的对时间操作的工具

/**
 * 时间格式换算
 * @param {number} time_num  毫秒数
 * 将微秒数转变成,时,分,秒
 * @return {string} "00:00:00"格式
 */
const formatTime = function(time_num){
    if (time_num) {
        //声明时间换算
        const second = 1000;//秒
        const minute = 1000*60;//分
        const hour = 1000*60*60;//时

        if (time_num < second) {//毫秒换算小于一秒
            return "00:00:00"
        } else if (time_num >= second && time_num < minute) {//毫秒换算秒
            let sec_num = addZero(Math.floor(time_num/second));
            return joinString("","",sec_num)
        }else if (time_num >= minute && time_num < hour) {//毫秒换分钟
            let minute_num = addZero(Math.floor(time_num/minute));
            let sec_num = addZero(Math.floor((time_num-minute_num*minute)/second));
            return joinString("",minute_num,sec_num);
        } else if (time_num >= hour && time_num < hour*99) {//毫秒换小时
            let hour_num = addZero(Math.floor(time_num/hour));
            let minute_num = addZero(Math.floor((time_num-hour_num*hour)/minute));
            let sec_num = addZero(Math.floor((time_num-hour_num*hour-minute_num*minute)/second));
            return joinString(hour_num,minute_num,sec_num)
        } else {
            return {
                clock:"00:00:00",
                time:"e秒",
                msg:"时间超过了99小时"
            }
        }
    } else {
        return {
            clock:"00:00:00",
            time:"0秒",
            msg:"参数错误"
        }
    }
};
/**
 * 为不满十位的数加0
 * @param e {number}
 * @return {string} 例如:15 => "15"; 1 => "01"
 */
const addZero =  function(e){
    if (typeof e === "number") {
        if (e > 9) {
            return e.toString();
        } else {
            return  "0" + e ;
        }
    }
};
/**
 * @param h {string} 拼接参数小时
 * @param m {string} 拼接参数分钟
 * @param s {string} 拼接参数秒
 * @return {}
 */
const joinString =  function(h,m,s){
    let hour = h || "00";
    let minute = m || "00";
    let sec = s || "00";
    return {
        clock:hour+":"+minute+":"+sec,
        time:hour+"时"+minute+"分"+sec+"秒"
    }
};
/**
 * 开启倒计时
 * @param {number} time_num 毫秒数
 * @param {function} callback  函数,用于嵌入定时器执行参数为秒数 callback(STRING)
 * @return
 */
const countZeroTime = function(time_num,callback){
    if (time_num) {
        let second_num = Math.floor(time_num/1000);
        let second_count = second_num;
        if (second_num < 1) {
            callback("00:00")
        } else if (second_num >= 1 && second_num < 60) {
            let interval = setInterval(function () {
                second_count--;
                callback("00"+ ":" + addZero(second_count));
                if (second_count === 0){
                    clearInterval(interval);
                };
            },1000);
        } else if (second_num >= 60 && second_num < 60*60) {
            let minute_num = Math.floor(second_num/60);
            let sec_num = second_num - minute_num*60;
            let sec_count = sec_num;
            let minute_count = minute_num;
            let interval = setInterval(function () {
                if (sec_count > 0) {
                    sec_count--;
                    let m = addZero(minute_count);
                    let s = addZero(sec_count);
                    callback(m+":"+s);
                } else if (minute_count > 0 && sec_count === 0) {
                    minute_count--;
                    sec_count = 59;
                    let m = addZero(minute_count);
                    let s = addZero(sec_count);
                    callback(m+":" +s);
                } else {
                    clearInterval(interval);
                }
            },1000)
        }else{
            callback(console.error("时长不能超过1个小时"))
        }
    } else {
        return null;
    }
};

module.exports = {
    formatTime, countZeroTime
};

目前只有两个方法
1:一个是传毫秒数返回时分秒:“00:00:00”
2:一个是一个小时内的倒计时
不定时更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值