【发布时间】: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