制作一个倒数计时器,其中时间存储在一个变量中
Make a countdown timer where time stored is in a variable
我在JavaScript中有一个变量存储时间。例如,duration
是一个以分钟和小时为单位存储时间的变量,如14分钟或1小时20分钟。我如何在JavaScript中使用这个变量制作一个倒计时计时器?
一种方法是使用正则表达式提取所需的值,并使用setInterval()
调用函数定期更新计时器。
下面的表达式匹配你的模式:
/^'s*(?:('d+)'s+hour(?:s)?'s*)?('d+)'s+minute(?:s)?$/i
第一个捕获组将为您提供小时数,第二个捕获组为分钟数。您可以通过match
方法访问它们。这将返回一个数组,其中包含每个匹配项的匹配项(如果没有找到匹配项,则返回null
)。
你可以得到h
和m
,分别是小时数和分钟数,像这样
time = "1 hour 10 minute";
match = time.match(/^'s*(?:('d+)'s+hour(?:s)?'s*)?('d+)'s+minute(?:s)?$/i);
if(match)
{
h = (match[1] === undefined) ? 0 : match[1]; // The number of hours
m = (match[2] === undefined) ? 0 : match[2]; // The number of minutes
}
这样可以给你想等的时间。您可以很容易地将其转换为毫秒(因为它更方便),并每秒钟更新一次,例如,直到它达到0。
setInterval()
javascript函数允许你每x毫秒调用一个函数(你的更新函数)。此函数返回一个标识符,您可以存储该标识符并稍后传递给clearInterval()
函数以清除先前设置的计时器。
interval = h * 3600000 + m * 60000; // the interval in ms
stopTime = new Date((new Date()).getTime() + interval); // when to stop counting
counter = setInterval(count, 1000);
您的count
函数然后只需要获得当前时间,更新间隔并检查该间隔是否低于或等于0,以便停止计时器。
function count()
{
now = new Date();
interval = Math.max(0, stopTime.getTime() - now.getTime());
if(interval <= 0) clearInterval(counter);
}
下面是一个这样的定时器的例子
相关文章:
- 如何在一个时间间隔后追加新的更新
- 转换一个时间(字符串),例如1:00 IST到另一个时区(比如PST)
- 在 rails / html / js 中创建一个时间轴
- 给定一个时间戳,如何按天/周/月显示时间
- jQuery:创建一个循环,首先需要一个时间间隔,然后更改为另一个时间间隔
- 编写一个时间函数,在游戏中清除倒计时并重新启动
- 在每行PHP上调用一个时间戳函数
- xd_soft日期时间选择器在只选择一个时间值时高亮显示多个时间值
- 使用moment.js、js或Jquery,在一个时间范围内打开一个功能
- 使用flipclock.js自动每日重置计数器到一个时间
- 创建一个时间间隔,使函数在JavaScript中随机时间运行
- 在javascript中制作一个时间计数器
- 我如何得到模态窗口弹出时,我选择一个时间槽fullCalendar
- 修改Meteor-React待办事项列表示例,显示一个时间范围内创建的列表项
- 列出一个HTML段落< >在一个时间效应
- 如何让一个消息弹出(悬停)当玩家击中一个时间瞬间
- 需要做多个搜索在一个时间与开始字符这是在自动完成搜索
- 我如何处理日期在javascript中,当它不断附加一个时间值
- 我如何使一个时间滑块显示网站存档在WordPress
- 褪色的9个缩略图在随机1在一个时间使用jquery画廊