Angular JS比较两个日期是否相等

Shy*_*dda 1 javascript date angularjs angular-ng-if

我用这个角度代码来比较两个日期是否相等.

码:

<div class="batchPlannings">
  <div ng-repeat="batchPlanning in batchPlannings"
    ng-animate="'animate'">
    <div ng-switch="batchPlanning.status">
      <div ng-switch-when="MAPPED" class="my-switch-animation">
        <p>start date: {{batchPlanning.startDate}}</p>
        <p>placement date: {{placementDate}}</p>
        <div ng-if="batchPlanning.startDate === {{placementDate}}"
          class="my-switch-animation">
          <a th:href="@{/placement}" class="list-group-item"
            sec:authorize="hasAnyRole('ROLE_SYSTEM_ADMIN', 'ROLE_CENTER_ADMIN')">Batch
            with batch code '{{batchPlanning.batchCode}}' is ready for
            placements</a>

        </div>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在这里,我想检查测试这两个日期或相同或不同我得到那些日期完美和罚款,这些也是平等但无法使这个条件成真.我用==检查了它,但没有结果.

任何帮助或建议将不胜感激.

Rea*_*lar 5

JavaScript使用对象来存储日期值.如果要比较两个日期是否相等,则不要这样做date1 === date2.这只会告诉你两个变量是否引用同一个对象.

要检查两个日期是否相等,请使用getTime()日期对象的方法.像这样:

date1.getTime() == date2.getTime()

要小心,因为秒的任何差异都不能与日期匹配.

现在ng-if将接受AngularJS表达式.你的例子中有这个batchPlanning.startDate === {{placementDate}}.这是一个无效的表达.{{placementDate}}是用于创建绑定的语法.

你想做的是batchPlanning.startDate.getTime() == placementDate.getTime().

确保两个变量都是有效的JavaScript日期对象.

我建议您使用momentjavascript库进行日期处理.它使日期工作变得更加容易.

http://momentjs.com/