Stopwatch/countdown (00:00:00) 格式 Javascript
Stopwatch/countdown (00:00:00) format with Javascript
我有这个代码:
function startStopwatch() {
vm.lastTickTime = new Date();
$interval.cancel(vm.timerPromise);
vm.timerPromise = $interval(function() {
var tickTime = new Date();
var dateDiff = vm.lastTickTime.getTime() - tickTime.getTime();
var secondsDiff = Math.abs(dateDiff / 1000);
vm.secondsElapsed += Math.round(secondsDiff);
vm.formattedSecondsElapsed = moment.duration(secondsElapsed, "seconds").format("HH:mm:ss");
vm.lastTickTime = tickTime;
}, 1000);
}
秒表上的 'play' 按钮被按下后,它滴答秒 (int)。
但是格式是01
,02
.....最多60然后01:01
,01:02
,等等
我想将其格式化为 00:00:00
,递增 int。我找到了其他编程语言的答案,但没有 JavaScript。感谢任何帮助!
我要取消删除,因为我认为这是最好的答案,我认为它具有学术价值。
vm.durationElapsed = new Date(null, null, null, null, null, secondsElapsed).toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "");
答案发现于:
借用RJB提供的答案,将算法转化为过滤器:
过滤器
app.filter('time', function() {
function isInt(n){
return Number(n) === n && n % 1 === 0;
}
return function(val) {
if (isInt(val))
return new Date(null, null, null, null, null, val).toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "");
return val;
}
});
用法
app.controller('ctrl', function($scope) {
$scope.seconds = 25251;
});
HTML
<div ng-controller="ctrl">
{{ seconds | time }}
</div>
我有这个代码:
function startStopwatch() {
vm.lastTickTime = new Date();
$interval.cancel(vm.timerPromise);
vm.timerPromise = $interval(function() {
var tickTime = new Date();
var dateDiff = vm.lastTickTime.getTime() - tickTime.getTime();
var secondsDiff = Math.abs(dateDiff / 1000);
vm.secondsElapsed += Math.round(secondsDiff);
vm.formattedSecondsElapsed = moment.duration(secondsElapsed, "seconds").format("HH:mm:ss");
vm.lastTickTime = tickTime;
}, 1000);
}
秒表上的 'play' 按钮被按下后,它滴答秒 (int)。
但是格式是01
,02
.....最多60然后01:01
,01:02
,等等
我想将其格式化为 00:00:00
,递增 int。我找到了其他编程语言的答案,但没有 JavaScript。感谢任何帮助!
我要取消删除,因为我认为这是最好的答案,我认为它具有学术价值。
vm.durationElapsed = new Date(null, null, null, null, null, secondsElapsed).toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "");
答案发现于:
借用RJB提供的答案,将算法转化为过滤器:
过滤器
app.filter('time', function() {
function isInt(n){
return Number(n) === n && n % 1 === 0;
}
return function(val) {
if (isInt(val))
return new Date(null, null, null, null, null, val).toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "");
return val;
}
});
用法
app.controller('ctrl', function($scope) {
$scope.seconds = 25251;
});
HTML
<div ng-controller="ctrl">
{{ seconds | time }}
</div>