这是我的标记
<input type="time" name="fromTime" id="fromTime" ng-model="newleave.fromTime" class="form-control" />
<input type="time" name="toTime" id="toTime" ng-model="newleave.toTime" class="form-control" ng-blur="calculatehours()"/>
<input type="time" name="Hours" id="Hours" ng-model="newleave.hours" class="form-control" readonly />
以下是我的角度代码
$scope.calculatehours = function(){
$scope.newleave.hours = $scope.newleave.toTime - $scope.newleave.fromTime;
console.log('hours',$scope.newleave.hours);
}
在控制台中它打印值360000但我无法在我的第三个输入类型=“时间”中绑定它。 因为我正在
Error: [ngModel:datefmt] Expected `3600000` to be a date
答案 0 :(得分:0)
我不清楚这个值代表什么(秒或毫秒)以及你需要的价值。在一个地方你有360000和另一个3600000(额外的零)。
如果是毫秒,并且您需要格式为h:mm:ss的字符串,那么您可以使用如下函数:
/* Convert milliseconds to time in hh:mm:ss format
** @param {number} ms - milliseconds to convert
** @returns {string} time in hh:mm:ss format
*/
var msToTime = (function() {
function pad(n){return (n < 10? '0':'') + n}
return function(ms) {
return pad(ms/3600000 | 0) + ':' +
pad((ms%3600000)/60000 | 0) + ':' +
pad((ms%60000)/1000 | 0);
}
}());
alert(msToTime(3600000));
如果是秒,则从除数中删除3个零。如果您不想在小时值上使用前导零,请不要在其上使用 pad 。