我想要一个1分钟的计时器,它应该在达到1分钟时立即停止,然后调用一个函数。为此,我使用了angular-timer指令。
我在html中使用的代码是
<timer end-time="60000">
{{days}} days, {{hours}} hours, {{minutes}} minutes, {{seconds}} seconds.
</timer>我在属性' end - time‘中提供了60000毫秒(1分钟)的结束时间。但它不起作用。当结束时间值为'1451628000000‘时,它可以工作。我哪里错了?还可以帮助我在计时器结束时如何调用函数。
提前谢谢。
发布于 2015-12-13 01:08:25
end-time参数以毫秒为单位获取时间戳。您的60000将作为时间戳。所以它已经停止了。
你能做的就是计算现在的时间戳,然后再加上60000进行调整。
在您的控制器中:
$scope.endTime = (new Date()).getTime()+60*1000;
在视图中:
<timer end-time="{{endTime}}">{{days}} days, {{hours}} hours, {{minutes}} minutes, {{seconds}} seconds.</timer>
我不确定您需要以哪种格式显示该计时器,但对于您所要求的,这将是可行的。
要在特定时间段后运行函数,只需在控制器中使用$timeout服务。注入$timeout并像JS中的setTimeout函数一样使用它。
$timeout(function () {
console.log('this will run after 1 minutes');
}, 60*1000);有关更多信息,请查看$timeouts documentation。
发布于 2015-12-13 01:19:08
您还可以使用倒计时,如下所示。
倒计时计时器
<timer interval="1000" countdown="100">{{countdown}}</timer>将从100开始倒计时,直到它每秒计时到0为止。
此标记将仅以分钟和秒为单位显示倒计时时间。此属性也可应用于常规时钟计时器。
<timer countdown="10041" max-time-unit="'minute'" interval="1000">
{{mminutes}} minute{{minutesS}}, {{sseconds}} second{{secondsS}}
</timer>到达回调时更新值的倒计时计时器
<timer countdown="3" interval="1000" finish-callback="callbackTimer.finished()">
{{seconds}} second{{secondsS}}
</timer>发布于 2015-12-13 01:08:24
你的错误很简单,而且很容易改正。JavaScript总是使用以毫秒为单位的时间,因此6000个相等到6秒。如果你尝试这样做,它应该会起作用:
<timer end-time="60000">{{days}} days, {{hours}} hours, {{minutes}} minutes, {{seconds}} seconds.</timer>https://stackoverflow.com/questions/34242497
复制相似问题