zoukankan      html  css  js  c++  java
  • 时间倒计时提醒

            var countDown = function (minute, callback) {
                var allSecond = minute * 60;
                var tickTimer = null;
    
                var start = function() {
                    tickTimer = setInterval(()=>{
                        -- allSecond;
                        if (allSecond == -1) {
                            stop();
                            callback && callback('finish');
                        } else {
                            extract(allSecond);
                        };
                    }, 1000);
                };
    
                var extract = function(second) {
                    var m = Math.floor(second / 60),
                        s = second % 60;
                    if (m > 0) {
                        callback && callback('value', `${m} 分 ${s} 秒`);
                    } else {
                        callback && callback('value', `${s} 秒`);
                    };
                };
    
                var stop = function() {
                    clearInterval(tickTimer);
                };
    
                return {
                    start: start,
                    stop: stop
                };
            };
    
            var diffTime = function() {
    
                var endTime,
                    waitMinute;    // 当前时间和设定时间的差值(分钟)
    
                endTime = getSameDay().concat(...arguments);
                return getMinByMil();
    
                function getSameDay() {
                    var time = new Date();
                    var year = time.getFullYear(),
                        mon = time.getMonth(),
                        day = time.getDate();
                    return [year, mon, day];
                };
    
                function getMinByMil(mil) {
                    var endTimeMs = new Date(...endTime).getTime();
                    waitMinute = Math.ceil((endTimeMs - new Date().getTime()) / 1000 / 60);
                    return waitMinute;
                };
            };
    
            // 比如当前时间为15: 58你设置为16:00:01做某件事,则可以这样
            var time = diffTime(16, 00, 1);
            countDown(time, function(state, v) {
                if (state === 'finish') {
                    console.log('时间到');
                } else if (state === 'value') {
                    console.log(v);
                };
            }).start();
  • 相关阅读:
    JVM 关于对象分配在堆、栈、TLAB的理解
    分布式唯一 ID 生成方案有哪些?
    JVM 栈帧之操作数栈与局部变量表 转
    C# TreeHelper帮助类
    Java:Top K问题的解法
    C#单例模式
    C#分组方式比较
    Vue实现登录
    git使用总结
    js实现无色彩球
  • 原文地址:https://www.cnblogs.com/sorrowx/p/7307339.html
Copyright © 2011-2022 走看看