2017-02-16 40 views
0

我试图做一个基于时间差异和日期差异的应用程序,并且日期和时间都是由用户输入的,并且时间格式都是在24小时内的情况。当我尝试减去这些值时错误的答案。如何区分angularjs中的两个时间值和日期值?

<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app=""> 
 
Time1:<br><input type="text" pattern="([0-1]{1}[0-9]{1}|20|21|22|23):[0-5]{1}[0-9]{1}" ng-model="time1"><br> 
 
<br> 
 
Time2:<br><input type="text" pattern="([0-1]{1}[0-9]{1}|20|21|22|23):[0-5]{1}[0-9]{1}" ng-model="time2"> 
 
<p> Your Time is ans is{{time1-time2}} </p> 
 
</div> 
 

 
</body> 
 
</html>

+0

请显示相关代码。 –

+0

对不起,现在代码已经插入在html中。 – Anshuman

回答

0

你的解决方案是使用输入类型时间为HTML和由昂Khaing乌在AngularJS:How to print out duration time with format?描述格式化计算结果。

<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app="myApp"> 
 
Time1:<br><input type="time" id="time1" name="time1" ng-model="time1" placeholder="HH:mm" required /><br> 
 
<br> 
 
Time2:<br><input type="time" id="time2" name="time2" ng-model="time2" placeholder="HH:mm" required /> 
 
<p> 
 
time1:{{time1}}<br/> 
 
time2:{{time2}} 
 
</p> 
 
<p> Your Time is ans is {{(time1-time2)| makePositive | date: 'HH:mm': 'UTC'}} </p> 
 
</div> 
 
<script> 
 
var app = angular.module('myApp', []); 
 
app.filter('makePositive', function() { 
 
return function(num) { 
 
    if(num < 0) { 
 
     todayDate = new Date(num); 
 
     todayDate.setDate(todayDate.getDate()+1); 
 
     num = todayDate; 
 
    } 
 
    return num; 
 
} 
 
}); 
 
</script> 
 
</body> 
 
</html>

更新:我添加了一个自定义过滤器来解决时间1 < TIME2问题。我把该解决方案从这里:Display absolute value angularjs

UPDATE2:只需添加如果有一天时间1和时间2之间的差为负改变了过滤器。使用angularjs - calculate a date plus one day作为我的适应基础。

+0

谢谢你的回应,你能告诉我怎么做出这个概念,如果time1 Anshuman

+0

我使用自定义过滤器更新了我的答案。 – Alexander

+0

对不起,它的绝对值,但我的问题是不同的请检查我的qns.suppose用户添加time1 = 6:00 AM和time2 = 07:20AM在逻辑6:00 AM去30:00,现在减法B/W 30:00和07:20。但是,如果该值大于07:20,则会减去正常值。 – Anshuman

相关问题