如何修复javascript倒计时秒错误
所以我有一个我创建的倒计时计时器如何修复javascript倒计时秒错误,javascript,html,Javascript,Html,所以我有一个我创建的倒计时计时器 <script type="text/javascript"> var interval; var minutes = 12; var seconds = 32; window.onload = function() { countdown('countdown'); } function countdown(element) { interval = setInterval(function() {
<script type="text/javascript">
var interval;
var minutes = 12;
var seconds = 32;
window.onload = function() {
countdown('countdown');
}
function countdown(element) {
interval = setInterval(function() {
var el = document.getElementById(element);
if(seconds == 0) {
if(minutes == 0) {
minutes=7;
seconds=47;
} else {
minutes--;
seconds = 60;
}
}
if(minutes > 0) {
var minute_text = minutes + (minutes > 1 ? ':' : ':');
} else {
var minute_text = '';
}
var second_text = seconds > 1 ?'':'';
el.innerHTML = minute_text + ''+seconds + ' '+second_text + ' remaining';
seconds--;
}, 1000);
}
</script>
var区间;
var分钟=12;
var秒=32;
window.onload=函数(){
倒计时(“倒计时”);
}
函数倒计时(元素){
间隔=设置间隔(函数(){
var el=document.getElementById(元素);
如果(秒==0){
如果(分钟==0){
分钟=7;
秒=47;
}否则{
分钟--;
秒=60;
}
}
如果(分钟>0){
var minute_text=minutes+(分钟数>1?':':':':');
}否则{
var minute_text='';
}
var second_text=seconds>1?“”:“”;
el.innerHTML=分钟文本+''+秒+''+秒文本+''剩余文本';
秒--;
}, 1000);
}
结果工作正常,但当计时器达到10以下的数字(12:03、12:05等)时,它会显示秒数,前面没有“0”。(12:3而不是12:03)
我试着修好这个,但毫无结果。是否可以通过某种方式编辑我的脚本来修复此错误?数字前面没有零 你必须手动添加它
if(seconds < 10) {
second_text = "0" + seconds;
}
if(秒<10){
秒\u text=“0”+秒;
}
尝试添加一个函数来填充显示的值
function padvalue(i) {
if (i<10) {
i="0" + String(i);
}
return i;
}
使用此代码段将数字转换为字符串:
var secondStr = seconds + "";
while (secondStr.length < 2) {
secondStr = "0" + secondStr;
}
var secondStr=seconds+“”;
while(secondStr.length<2){
secondStr=“0”+secondStr;
}
在几分钟和几小时内执行相同的操作,然后打印字符串
(您知道,如果间隔时间为1000,则表示间隔时间为1000毫秒或更长?如果间隔时间如此长,则不太可能错过整个刻度。这意味着计数器将接近实时秒数,但不精确,并且会随时间和计算机的不同而变化。)我刚刚清理了一下您的代码:
var interval,
minutes = 12,
seconds = 32;
window.onload = function() {
countdown('countdown');
}
function countdown(element) {
var el = document.getElementById(element),
minutes_text, second_text;
interval = setInterval(function() {
if(seconds == 0) {
if(minutes == 0) {
minutes=7;
seconds=47;
}
else {
minutes--;
seconds = 60;
}
}
minutes_text = minutes;
second_text = (seconds < 10 ? "0" : "") + seconds;
el.innerHTML = minutes_text + ':' + second_text + ' remaining';
seconds--;
}, 1000);
}
var间隔,
分钟=12,
秒=32;
window.onload=函数(){
倒计时(“倒计时”);
}
函数倒计时(元素){
var el=document.getElementById(元素),
会议记录、第二次会议记录;
间隔=设置间隔(函数(){
如果(秒==0){
如果(分钟==0){
分钟=7;
秒=47;
}
否则{
分钟--;
秒=60;
}
}
分钟\文本=分钟;
秒文本=(秒<10?:“)+秒;
el.innerHTML=minutes_text+':'+second_text+'剩余';
秒--;
}, 1000);
}
我知道该行代码可能重复,但我不知道在哪里添加该行代码。我尝试在分钟和秒的组合行之间添加“0”,但它不起作用。你不应该这样使用parseInt。@Neal顺便说一句,你不需要在second\u text
上调用parseInt,因为你已经可以访问seconds
@sachleen lol。我觉得秒是一个总数。不是真实的数字。更新。@Neal s=seconds,我从我写的倒计时脚本中复制了它:)我理解,但OP可能不理解+1为最简单的答案。
var secondStr = seconds + "";
while (secondStr.length < 2) {
secondStr = "0" + secondStr;
}
var interval,
minutes = 12,
seconds = 32;
window.onload = function() {
countdown('countdown');
}
function countdown(element) {
var el = document.getElementById(element),
minutes_text, second_text;
interval = setInterval(function() {
if(seconds == 0) {
if(minutes == 0) {
minutes=7;
seconds=47;
}
else {
minutes--;
seconds = 60;
}
}
minutes_text = minutes;
second_text = (seconds < 10 ? "0" : "") + seconds;
el.innerHTML = minutes_text + ':' + second_text + ' remaining';
seconds--;
}, 1000);
}