如何将当前时间与JSON数据进行比较

时间:2014-05-05 19:54:52

标签: angularjs

我有以下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中的时间。提前谢谢。

1 个答案:

答案 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