我用这个角度代码来比较两个日期是否相等。
代码:
<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>
在这里,我想检查测试这两个日期或是否相等 我得到的那些日期完美而且很好,但这些日期也是平等的,但无法使这个条件成真。 我用==检查了它,但没有结果。
任何帮助或建议都将不胜感激。
答案 0 :(得分:5)
JavaScript使用对象存储日期值。如果要比较两个日期是否相等,请不要执行此操作date1 === date2
。这只会告诉你两个变量是否引用同一个对象。
要检查两个日期是否相等,请使用日期对象的getTime()
方法。像这样:
date1.getTime() == date2.getTime()
要小心,因为秒数的任何差异都无法与日期匹配。
现在ng-if
将接受AngularJS表达式。您的示例batchPlanning.startDate === {{placementDate}}
中有此内容。这是一个无效的表达。 {{placementDate}}
是用于创建绑定的语法。
您要做的是batchPlanning.startDate.getTime() == placementDate.getTime()
。
确保两个变量都是有效的JavaScript日期对象。
我建议您使用moment
javascript库进行日期处理。它使日期工作变得更加容易。