Javascript倒计时组件new TimeSpan(hours, minutes, minutes)

function TimeSpan(h, m, s) {

    this.h = Number(h);
    this.m = Number(m);
    this.s = Number(s);

}

TimeSpan.prototype = {

    timer: null,

    stop: function() {

    },

    callback: Function(),

    start: function(callback) {
        var self = this;

        if (callback) {

            this.callback = callback;
        }

        if (isNaN(this.s)) {
            return;
        }

        self.timer = setInterval(function() {

            self.s--;

            if (self.s >= 0) {
                self.callback();
                return;

            }

            //s < 0, m > 0
            if (self.m > 0) {
                self.s = 59;
                self.m--;
                self.callback();
                return;
            }

            //s < 0 ,m = 0, h<1
            if (isNaN(self.h) || self.h < 1) {
                //self.callback();
                clearInterval(self.timer);
                return;
            }


            self.m = 59;
            self.s = 59;
            self.h--
            self.callback();
        }, 1000);

    }
};

 

调用:

    var ts = new TimeSpan(hours, minutes, minutes);

    ts.start(function(){
        var s = this.s < 10 ? "0" + this.s : this.s;
        var m = this.m < 10 ? "0" + this.m : this.m; 
        $(".clock .time").html(m + "分" + s + "秒");
    });

 

转载于:https://www.cnblogs.com/rentj1/p/3908601.html

timespanjs 是实现日期差值的人性化显示的 Javascript 库。比如,可以显示成:2年2个月2小时4分钟23秒。同时支持国际化,可扩展。已经支持的语言: 中文简体(zh-cn) 中文繁体(zh-tw) 英文(en) 如何使用 通过script标签引入timespanjs脚本文件。如果使用requirejs,则需要通过require.config配置timespan路径。 创建Timespan对象。可以通过构造函数中传递时间差值创建,也可以通过传递两个Date对象实例创建。 调用humanize实例方法,获取人性化显示字符串。 调用Timespan.lang(),设置语言。 浏览器下的引用 [removed][removed][removed]     var ts=new Timespan(85,'m');[removed] requirejs下的引用 require.config({     paths: {         "timespanjs": "path/to/timespan",     }});define(["timespanjs"], function (Timespan) {     var ts=new Timespan(85,'m');}); node.js下的引用 调用示例: //该值表示为:3小时4分钟25秒30毫秒 var msvalue = 30   1000 * 25   1000 * 60 * 4   1000 * 60 * 60 * 3; var ts = new Timespan(msvalue, 'ms'); console.log(ts.humanize()); //输出为:3小时4分钟25秒30毫秒 //通过fromDates方法构造 var dt=new Date(2014,7,1); var dt1=new Date(2014,8,1,10,12,15,234); var ts = Timespan.fromDates(dt, dt1); console.log(ts.humanize()); //输出:1个月1天10小时12分钟15秒,234毫秒未输出,因为baseUnit参数默认是:'s'Timespan.lang('en'); console.log(ts.humanize()); //输出:1 month,1 day,10 hours,12 minutes,15 seconds 测试用例 见https://github.com/houyhea/timespanjs/blob/master/test/testTimespan.html。请获取并运行即可。 浏览器兼容性 兼容IE8 ,chrome,firefox。 依赖 不需要依赖其他库。 标签:timespanjs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值