2014-12-18 2 views
1

Я использовал этот угловой код для сравнения двух дат равными или нет.Угловой JS сравнить два Даты равные или нет

Код:

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

Здесь я хочу проверить проверить эти две даты или равные или не я получаю эти даты идеально и хорошо, и те, которые также равны, но не в состоянии сделать это условие истинным. Я тоже проверил его с ==, но результата нет.

Любая помощь или предложение будут оценены.

+1

попытка Chage batchPlanning.startDate === {{}} placementDate к batchPlanning.startDate === placementDate –

+0

@Alexander Thanx для быстрого response..Ok, что я дам вам знать .. –

+0

@Alexander Большое спасибо ... ты спас мой день ... Он работает .. –

ответ

5

JavaScript использует объекты для хранения значений даты. Если вы хотите сравнить, если две даты равны, не делайте этого date1 === date2. Это просто скажет вам, ссылаются ли две переменные на один и тот же объект.

Чтобы проверить, равны ли две даты, используйте метод getTime() объекта даты. Как это:

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

Будьте осторожны, потому что какая-то разница в секундах будет не соответствовать даты.

Теперь ng-if примет выражения AngularJS. У вас это в вашем примере batchPlanning.startDate === {{placementDate}}. Это недопустимое выражение. {{placementDate}} - синтаксис, используемый для создания привязки.

Что вы хотите сделать, это batchPlanning.startDate.getTime() == placementDate.getTime().

Убедитесь, что обе переменные являются действительными объектами даты JavaScript.

Я рекомендую вам использовать библиотеку javascript moment для обработки даты. Это облегчает работу с датами.

http://momentjs.com/

Смежные вопросы