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

/**
 * 时间格式换算
 * @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
    评论
在Java中,对于时间日期的操作非常常见,因此使用工具类可以方便我们进行时间操作。下面介绍几个常用的时间操作工具类。 ### 1. SimpleDateFormat SimpleDateFormat是Java中的一个时间格式化工具类,可以将Date类型的时间格式化为指定格式的字符串。 ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdf.format(new Date()); ``` ### 2. Calendar Calendar是Java中的一个时间操作工具类,可以进行时间的加减、比较、获取等操作。 ```java Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, 1); // 加一天 cal.add(Calendar.HOUR_OF_DAY, -2); // 减两小时 int year = cal.get(Calendar.YEAR); // 获取年份 int month = cal.get(Calendar.MONTH) + 1; // 获取月份(0-11,需要+1) int day = cal.get(Calendar.DAY_OF_MONTH); // 获取日 int hour = cal.get(Calendar.HOUR_OF_DAY); // 获取小时 int minute = cal.get(Calendar.MINUTE); // 获取分钟 int second = cal.get(Calendar.SECOND); // 获取秒 ``` ### 3. Duration Duration是Java 8中新增的一个时间操作工具类,可以计算两个时间之间的差值。 ```java Duration duration = Duration.between(LocalDateTime.now(), LocalDateTime.of(2022, 1, 1, 0, 0, 0)); long days = duration.toDays(); // 获取相差的天数 long hours = duration.toHours(); // 获取相差的小时数 long minutes = duration.toMinutes(); // 获取相差的分钟数 long seconds = duration.getSeconds(); // 获取相差的秒数 ``` ### 4. LocalDateTime LocalDateTime是Java 8中新增的一个时间操作工具类,可以方便地进行日期时间的计算、比较和格式化。 ```java LocalDateTime now = LocalDateTime.now(); LocalDateTime nextMonth = now.plusMonths(1); // 加一个月 LocalDateTime lastWeek = now.minusWeeks(1); // 减一周 boolean isBefore = now.isBefore(nextMonth); // 是否在nextMonth之前 boolean isAfter = lastWeek.isAfter(now); // 是否在now之后 String formatted = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 格式化为字符串 ``` ### 5. TimeUnit TimeUnit是Java中的一个时间单位工具类,可以方便地进行时间单位转换。 ```java long millis = TimeUnit.DAYS.toMillis(1); // 一天的毫秒数 long minutes = TimeUnit.SECONDS.toMinutes(60); // 60秒的分钟数 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值