【问题标题】:how to resolve jquery custom Timer issue?如何解决 jquery 自定义 Timer 问题?
【发布时间】:2012-08-02 08:02:35
【问题描述】:

我创建了一个自定义 Jquery 计时器。但我面临的小问题我不知道这对我不起作用。下面是我的代码。

  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# 从后面的代码中传递了小时、分钟、秒。现在我的问题是,如果秒数小于,我想添加“0” 9 分钟不到 9 分钟和小时不到 9。我尝试了以下技巧,但我不知道为什么它对我不起作用..

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

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

【问题讨论】:

  • 几个问题 - if 语句中的秒数的确切值是什么 - '9' 或 '09'。 if 语句到底在哪里/
  • 值是 9 ..它可以是在显示到标签文本之前的任何位置
  • 我之所以问是因为如果一个数字以 0 开头,则 parseInt 默认为 radix octal,这可能会导致一些奇怪的问题。尝试使用 parseint(seconds, 10) 看看问题是否仍然存在

标签: c# javascript jquery datetime timer


【解决方案1】:

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

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

去掉 0 的引号,则将其视为数字。

附:我想这就是你要解决的问题

【讨论】:

    【解决方案2】:

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

    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)
        }
    

    【讨论】:

    • 怎么样(小时
    • 快到了。 小时内有几个地方缺少 0
    猜你喜欢
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 2020-01-19
    • 1970-01-01
    • 2022-07-21
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多