javascript 计算倒计时

时间:2022-12-04 22:09:22
    function timeDown(second) {
        var month = '', day = '', hour = '', minute = '';
        if (second >= 86400 * 30) {
            month = Math.floor(second / (86400 * 30)) + '月';
            second = second % (86400 * 30);
        }
        if (second >= 86400) {
            day = Math.floor(second / 86400) + '天';
            second = second % (86400);
        }
        if (second >= 3600) {
            hour = Math.floor(second / 3600) + '小时';
            second = second % 3600;
        }
        if (second >= 60) {
            minute = Math.floor(second / 60) + '分';
            second = second % 60;
        }
        if (second > 0) {
            second = second ? second + '秒' : '';
        }
        return month + day + hour + minute + second;
    }

如果想显示倒计时效果,可以使用如下代码调用:

<!-- 引入jquery -->
<script>
    $(function () {
        var second = 10000;
        $('.remain_time').html(timeDown(second));
        setInterval(function () {
            second--;
            $('.remain_time').html(timeDown(second));
        }, 1000);
    })
</script>
<span class="remain_time"></span>

 jquery插件形式:

            $.fn.timeDown = function (opt) {
                var second = opt.second;
                var tip = '已过期';
                var $this = this;
                self._timeDown = function (second) {
                    var month = '', day = '', hour = '', minute = '';
                    if (second >= 86400 * 30) {
                        month = Math.floor(second / (86400 * 30)) + '月';
                        second = second % (86400 * 30);
                    }
                    if (second >= 86400) {
                        day = Math.floor(second / 86400) + '天';
                        second = second % (86400);
                    }
                    if (second >= 3600) {
                        hour = Math.floor(second / 3600) + '小时';
                        second = second % 3600;
                    }
                    if (second >= 60) {
                        minute = Math.floor(second / 60) + '分';
                        second = second % 60;
                    }
                    if (second > 0) {
                        second = second ? second + '秒' : '';
                    } else {
                        return tip;
                    }
                    return month + day + hour + minute + second;
                };
                $this.html(self._timeDown(second));
                setInterval(function () {
                    second--;
                    $this.html(self._timeDown(second));
                }, 1000)
            };
// 使用方式
$('.remain_time').timeDown({second:1000,tip:'已过期'})