输入一个数字并在AngularJS中以'hh:mm:ss'/时间格式显示
Input a number and showed it in 'hh:mm:ss' /time format in AngularJS
我在我的应用程序中制作功能,当我输入特定数字时,它会显示 hh:mm:ss 格式并开始倒计时。输入的数字将被视为分钟,例如当我输入 2 时,显示将是 00:02:00 然后它会开始倒计时。
<body ng-app="mehmetcankerApp">
<!--counterCtrl App Controller -->
<div ng-controller="counterCtrl">
<!--Angular Binding -->
<input type="number" ng-model="counter"/>
<p ng-model="format" ng-bind="counter" id="numOfDozens"></p>
<button ng-click="stop()">Stop</button>
<button ng-click="countdown()">Start</button>
</div>
整个代码都在这个plnker中link:http://plnkr.co/edit/Mzv6W9smmRkaDPU4cgVa?p=preview
在这里你可以看到,我创建了一个函数来获取样本日期和输入文本的确切时间(计数器)。
{{getMyTime() | date: 'HH:mm:ss'}}
getMyTime()
将 return 具有正确时间的示例日期并使用日期过滤器对其进行格式化。
$scope.getMyTime = function(){
var myTime = new Date(01,01,01);
myTime.setMinutes($scope.counter);
return myTime;
}
希望对您有所帮助。
如有任何疑问,请随时提出!!!
您需要使用自定义过滤器和间隔:
var app = angular.module('app', []);
app.controller('counterCtrl', ['$scope', '$interval',
function($scope, $interval) {
$scope.minutes = 0;
$scope.seconds = $scope.minutes * 60;
$scope.$watch('minutes', function() {
$scope.seconds = $scope.minutes * 60;
});
$scope.countdown = function() {
if ($scope.seconds <= 0) return;
$scope.countdownInterval = $interval(function() {
if ($scope.seconds <= 0) {
$interval.cancel(countdownInterval);
}
$scope.seconds--;
}, 1000);
};
$scope.stop = function() {
$interval.cancel($scope.countdownInterval);
};
}
]);
app.filter('secondsToDate', [
function() {
return function(seconds) {
return new Date(1970, 0, 1).setSeconds(seconds);
};
}
])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="counterCtrl">
<!--Angular Binding -->
<input type="number" ng-model="minutes" />
<p id="numOfDozens">{{seconds | secondsToDate | date:'HH:mm:ss'}}</p>
<button ng-click="stop()">Stop</button>
<button ng-click="countdown()">Start</button>
</div>
</div>
我在我的应用程序中制作功能,当我输入特定数字时,它会显示 hh:mm:ss 格式并开始倒计时。输入的数字将被视为分钟,例如当我输入 2 时,显示将是 00:02:00 然后它会开始倒计时。
<body ng-app="mehmetcankerApp">
<!--counterCtrl App Controller -->
<div ng-controller="counterCtrl">
<!--Angular Binding -->
<input type="number" ng-model="counter"/>
<p ng-model="format" ng-bind="counter" id="numOfDozens"></p>
<button ng-click="stop()">Stop</button>
<button ng-click="countdown()">Start</button>
</div>
整个代码都在这个plnker中link:http://plnkr.co/edit/Mzv6W9smmRkaDPU4cgVa?p=preview
在这里你可以看到,我创建了一个函数来获取样本日期和输入文本的确切时间(计数器)。
{{getMyTime() | date: 'HH:mm:ss'}}
getMyTime()
将 return 具有正确时间的示例日期并使用日期过滤器对其进行格式化。
$scope.getMyTime = function(){
var myTime = new Date(01,01,01);
myTime.setMinutes($scope.counter);
return myTime;
}
希望对您有所帮助。
如有任何疑问,请随时提出!!!
您需要使用自定义过滤器和间隔:
var app = angular.module('app', []);
app.controller('counterCtrl', ['$scope', '$interval',
function($scope, $interval) {
$scope.minutes = 0;
$scope.seconds = $scope.minutes * 60;
$scope.$watch('minutes', function() {
$scope.seconds = $scope.minutes * 60;
});
$scope.countdown = function() {
if ($scope.seconds <= 0) return;
$scope.countdownInterval = $interval(function() {
if ($scope.seconds <= 0) {
$interval.cancel(countdownInterval);
}
$scope.seconds--;
}, 1000);
};
$scope.stop = function() {
$interval.cancel($scope.countdownInterval);
};
}
]);
app.filter('secondsToDate', [
function() {
return function(seconds) {
return new Date(1970, 0, 1).setSeconds(seconds);
};
}
])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="counterCtrl">
<!--Angular Binding -->
<input type="number" ng-model="minutes" />
<p id="numOfDozens">{{seconds | secondsToDate | date:'HH:mm:ss'}}</p>
<button ng-click="stop()">Stop</button>
<button ng-click="countdown()">Start</button>
</div>
</div>