我有以下JSON数据:
[
{
"morning":"5:36 am",
"evening":"7:00 pm"
}
]
我想将JSON数据与当前时间进行比较。例如:早上>当前时间?
HTML:
<div ng-repeat="item in schedule">
<div>Morning - {{item.morning}}</div>
<div>Eveing - {{item.evening}}</div>
</div>
我已指定AngularJS部分来显示数据及其工作情况。现在,我想将 {{item.morning}} 与当前时间进行比较,并在 {{item.morning}} as&#34; Time up&#34;根据条件。
请告诉我如何比较AngularJS中的时间。提前谢谢。
答案 0 :(得分:0)
正如@PWKad所提到的,你应该使用像moment.js这样的日期库。 其中一个原因可能是,尝试自己实现它可能会以这样一个丑陋,快速且真实的代码结束:
控制器:
$scope.isTimeUp = function(time) {
var hour, minute;
if(time.split(" ")[1] == 'pm' && time.split(":")[0] != '12') {
hour = parseInt(time.split(":")[0]) + 12;
} else {
hour = parseInt(time.split(":")[0]);
}
minute = parseInt(time.split(":")[1]);
var today = new Date();
var givenDate = new Date();
givenDate.setHours(hour);
givenDate.setMinutes(minute);
if(givenDate < today) {
return true;
} else {
return false;
}
}
HTML:
<div ng-repeat="item in schedule">
<div>
Morning - {{item.morning}}
<span ng-if="isTimeUp(item.morning)">
Time's up!
</span>
</div>
<div>
Eveing - {{item.evening}}
<span ng-if="isTimeUp(item.evening)">
Time's up!
</span>
</div>
</div>
...这是跟随你的标记。您可能希望实现自定义过滤器。但是,再次使用moment.js。
无论如何,它似乎在起作用,虽然我没有多考虑或过多地测试过它 - see demo。