删除倒数计时器中的 0
remove the 0's in count down timer
我创建了一个从 10:00 开始倒计时的倒计时计时器,我希望倒计时计时器在低于 1 分钟时删除第一个 0。并在低于 10 秒时包括结尾零。
例如:“0:59”我想删除 0,这样它应该显示“:59”,然后“:9”应该显示“:09”
老实说,我没怎么尝试过。我想也许这可以用正则表达式来完成,但我不确定怎么做。
我的计时器:
const mins = 10;
// getting the exact time as of the page load
const now = new Date().getTime();
// the math that is done for the actual countdown. So 10*60*1000 + the time retrieved from the page load.
const deadline = mins * 60 * 1000 + now;
// This is a function, however it is a JavaScript method and calls a function.
setInterval(() => {
// Gets the current time
var currentTime = new Date().getTime();
// gets the 'distance' between the deadline(10 mins) and the current time
var distance = deadline - currentTime;
// found out this method does the math for you, I had to look this up and research it on W3schools
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
// the interval is set to 1 sec, so the timer refreshes and counts down every second
if (seconds < 0) {
confirm('Alert For your User!');
window.location.reload();
}
}, 1000);
我没有在开始的时候添加任何东西,因为我不确定从哪里开始!任何帮助都会很棒。
你可以用一些基本的 if 语句来做到这一点(见下文),但正如评论中的人所说,把它读成 :59
而不是 0:59
[=14 看起来很奇怪=]
const timeSpan = document.querySelector('#test');
const mins = 10;
// getting the exact time as of the page load
const now = new Date().getTime();
// the math that is done for the actual countdown. So 10*60*1000 + the time retrieved from the page load.
const deadline = 62 * 1000 + now;
// This is a function, however it is a JavaScript method and calls a function.
setInterval(() => {
// Gets the current time
var currentTime = new Date().getTime();
// gets the 'distance' between the deadline(10 mins) and the current time
var distance = deadline - currentTime;
// found out this method does the math for you, I had to look this up and research it on W3schools
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
if (minutes > 0) {
if(seconds < 10){
timeSpan.innerHTML = minutes + ':0' + seconds;
} else {
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
}
} else if(seconds < 10) {
timeSpan.innerHTML = ':0' + seconds;
} else {
timeSpan.innerHTML = ':' + seconds;
}
// the interval is set to 1 sec, so the timer refreshes and counts down every second
if (seconds < 0) {
confirm('Alert For your User!');
window.location.reload();
}
}, 1000);
<p id="test">
</p>
答案:
您可以使用简单的 if
语句在输出到屏幕之前立即更改输出。
// check if seconds is single digit
if(seconds.toString().length === 1) { seconds = "0" + seconds }
// check if minutes is zero ( which is falsy )
if(!minutes) minutes = "";
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
您还可以声明一个变量来保存对 interval
的引用
// declare the interval as a variable so you can clear it!
let my_interval = setInterval(() => {
这允许您在不再需要它时清除它 运行:
if (seconds < 0) {
confirm('Alert For your User!');
//clear the interval when it finishes!
clearInterval(my_interval);
}
}, 1000);
代码片段:
let timeSpan = document.querySelector("#timeSpan");
const mins = 1;
// getting the exact time as of the page load
const now = new Date().getTime();
// the math that is done for the actual countdown. So 10*60*1000 + the time retrieved from the page load.
const deadline = mins * 60 * 1000 + now;
// This is a function, however it is a JavaScript method and calls a function.
// declare the interval as a variable so you can clear it!
let my_interval = setInterval(() => {
// Gets the current time
var currentTime = new Date().getTime();
// gets the 'distance' between the deadline(10 mins) and the current time
var distance = deadline - currentTime;
// found out this method does the math for you, I had to look this up and research it on W3schools
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// check if seconds is single digit
if(seconds.toString().length === 1) { seconds = "0" + seconds }
// check if minutes is zero ( which is falsy )
if(!minutes) minutes = "";
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
// the interval is set to 1 sec, so the timer refreshes and counts down every second
if (seconds < 0) {
confirm('Alert For your User!');
//clear the interval when it finishes!
clearInterval(my_interval);
}
}, 1000);
我创建了一个从 10:00 开始倒计时的倒计时计时器,我希望倒计时计时器在低于 1 分钟时删除第一个 0。并在低于 10 秒时包括结尾零。
例如:“0:59”我想删除 0,这样它应该显示“:59”,然后“:9”应该显示“:09”
老实说,我没怎么尝试过。我想也许这可以用正则表达式来完成,但我不确定怎么做。
我的计时器:
const mins = 10;
// getting the exact time as of the page load
const now = new Date().getTime();
// the math that is done for the actual countdown. So 10*60*1000 + the time retrieved from the page load.
const deadline = mins * 60 * 1000 + now;
// This is a function, however it is a JavaScript method and calls a function.
setInterval(() => {
// Gets the current time
var currentTime = new Date().getTime();
// gets the 'distance' between the deadline(10 mins) and the current time
var distance = deadline - currentTime;
// found out this method does the math for you, I had to look this up and research it on W3schools
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
// the interval is set to 1 sec, so the timer refreshes and counts down every second
if (seconds < 0) {
confirm('Alert For your User!');
window.location.reload();
}
}, 1000);
我没有在开始的时候添加任何东西,因为我不确定从哪里开始!任何帮助都会很棒。
你可以用一些基本的 if 语句来做到这一点(见下文),但正如评论中的人所说,把它读成 :59
而不是 0:59
[=14 看起来很奇怪=]
const timeSpan = document.querySelector('#test');
const mins = 10;
// getting the exact time as of the page load
const now = new Date().getTime();
// the math that is done for the actual countdown. So 10*60*1000 + the time retrieved from the page load.
const deadline = 62 * 1000 + now;
// This is a function, however it is a JavaScript method and calls a function.
setInterval(() => {
// Gets the current time
var currentTime = new Date().getTime();
// gets the 'distance' between the deadline(10 mins) and the current time
var distance = deadline - currentTime;
// found out this method does the math for you, I had to look this up and research it on W3schools
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
if (minutes > 0) {
if(seconds < 10){
timeSpan.innerHTML = minutes + ':0' + seconds;
} else {
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
}
} else if(seconds < 10) {
timeSpan.innerHTML = ':0' + seconds;
} else {
timeSpan.innerHTML = ':' + seconds;
}
// the interval is set to 1 sec, so the timer refreshes and counts down every second
if (seconds < 0) {
confirm('Alert For your User!');
window.location.reload();
}
}, 1000);
<p id="test">
</p>
答案:
您可以使用简单的 if
语句在输出到屏幕之前立即更改输出。
// check if seconds is single digit
if(seconds.toString().length === 1) { seconds = "0" + seconds }
// check if minutes is zero ( which is falsy )
if(!minutes) minutes = "";
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
您还可以声明一个变量来保存对 interval
// declare the interval as a variable so you can clear it!
let my_interval = setInterval(() => {
这允许您在不再需要它时清除它 运行:
if (seconds < 0) {
confirm('Alert For your User!');
//clear the interval when it finishes!
clearInterval(my_interval);
}
}, 1000);
代码片段:
let timeSpan = document.querySelector("#timeSpan");
const mins = 1;
// getting the exact time as of the page load
const now = new Date().getTime();
// the math that is done for the actual countdown. So 10*60*1000 + the time retrieved from the page load.
const deadline = mins * 60 * 1000 + now;
// This is a function, however it is a JavaScript method and calls a function.
// declare the interval as a variable so you can clear it!
let my_interval = setInterval(() => {
// Gets the current time
var currentTime = new Date().getTime();
// gets the 'distance' between the deadline(10 mins) and the current time
var distance = deadline - currentTime;
// found out this method does the math for you, I had to look this up and research it on W3schools
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// check if seconds is single digit
if(seconds.toString().length === 1) { seconds = "0" + seconds }
// check if minutes is zero ( which is falsy )
if(!minutes) minutes = "";
// Inserts the timer into the Span timer
timeSpan.innerHTML = minutes + ':' + seconds;
// the interval is set to 1 sec, so the timer refreshes and counts down every second
if (seconds < 0) {
confirm('Alert For your User!');
//clear the interval when it finishes!
clearInterval(my_interval);
}
}, 1000);