如何解决jquery自定义定时器问题

how to resolve jquery custom Timer issue?

本文关键字:jquery 自定义 定时器 问题 解决 何解决      更新时间:2024-06-25

我创建了一个自定义Jquery Timer。但我遇到了一个小问题,我不知道这对我不起作用。下面是我的代码。

  function show(Hos, mins, secds) {
        var hours = Hos;
        var minutes = mins;
        var seconds = secds;
        var dn = "AM";
        if (hours > 12) {
            dn = "PM"
            hours = hours - 12
        }
                    if (hours == 0)
                        hours = 12
        document.getElementById('<%= Label1.ClientID %>').innerHTML = hours + ":" + minutes + ":" + seconds + " " + dn
        if (parseInt(seconds) == 59) {
            seconds = 0;
            if (parseInt(minutes) == 59) {
                if (parseInt(hours) == 12) {
                    hours = 0;
                } else {
                    hours = parseInt(hours) + 1;
                }
            } else {
                minutes = parseInt(minutes) + 1;
            }
        } else {
            seconds = parseInt(seconds) + 1;
        }

        setTimeout("show('" + hours + "','" + minutes + "','" + seconds + "'" + " )", 1000)
    }

这个代码运行得很好,我第一次使用c#从后面的代码中传递小时、分钟、秒。现在我的问题是,如果秒小于9,分钟小于9,小时小于9,我想添加"0"。我试过下面的把戏,但我不知道为什么它对我不起作用

if (seconds <= 9) {
                seconds = '0' + parseInt(seconds);
            }

请帮帮我……事实上,当我尝试这个时会发生什么。它连接0的秒数最多为9,但随着9的到来,它从1重新启动。这就是问题所在。

seconds = '0' + parseInt(seconds)将执行字符串添加,因为'0'是一个字符串。

当您在javascript中将字符串添加到数字中时,该数字将附加到字符串中。

删除0的引号,然后将其视为数字。

第页。S.我想这就是你试图破解的问题

我使用以下技巧解决了这个问题:

function show(Hos, mins, secds) {
        var hours = Hos;
        var minutes = mins;
        var seconds = parseInt(secds, 10);

        if (hours == 0)
            hours = 12
        if (parseInt(seconds, 10) < 10) {
            seconds = "0" + parseInt(seconds, 10);
        }
        if (parseInt(hours, 10) < 10) {
            hours= "0" + parseInt(hours, 10);
        }
        if (parseInt(minutes, 10) < 10) {
            minutes= "0" + parseInt(minutes, 10);
        }
        document.getElementById('<%= Label1.ClientID %>').innerHTML = hours + ":" + minutes + ":" + seconds + " "
        if (parseInt(seconds) == 59) {
            seconds = 0;
            if (parseInt(minutes, 10) == 59) {
                if (parseInt(hours, 10) == 24) {
                    hours = 0;
                } else {
                    hours = parseInt(hours, 10) + 1;
                }
            } else {
                minutes = parseInt(minutes, 10) + 1;
            }
        } else {
               seconds = parseInt(seconds, 10) + 1;
       }
        setTimeout("show('" + hours + "','" + minutes + "','" + seconds + "'" + " )", 1000)
    }