2014-10-18 11 views
11

Szukam porównać dwie daty w ng-jeśli jest to, jak wygląda mój plik jade.AngularJs ng-if porównywanie dat

li.list-group-item(ng-if="app.Segments[0].StartDate.getTime() > date.getTime()") 
    div.row 
     div.col-xs-12 
      span 
       i.fa.fa-plus-square 

Kod ten, miejmy nadzieję, doda li do mojego interfejsu użytkownika, jeśli data początkowa pierwszego segmentu jest już dzisiaj.

$scope.date = new Date(); 
$scope.app = { 
    Segments: [{ 
     StartDate: 2014-11-15T04:00:00.000Z 
     EndDate: 2014-11-20T04:00:00.000Z 
    }, 
    { 
     StartDate: 2014-11-21T04:00:00.000Z 
     EndDate: 2014-11-25T04:00:00.000Z 
    }] 

} 

Czy mimo to można to wykonać?

+1

Jestem zakładając te segmenty są faktycznie ciągi? – Josh

+0

Są one przechowywane jako obiekty z datami w mongoDB i wciągana do kontrolera. Próbowałem tylko pokazać, jak wyglądały dane. –

Odpowiedz

13

Jeśli są data obiekt tylko porównać je bezpośrednio bez .getTime()

$scope.date2005 = new Date('2005/01/01'); 
$scope.date2006 = new Date('2006-01-01T04:00:00.000Z'); 
<div ng-if="date2005 > date2006">date2005 > date2006</div> <!-- won't show --> 
<div ng-if="date2006 > date2005">date2006 > date2005</div> <!-- will show --> 

http://plnkr.co/edit/fNB11U6KmFszdV3lMAPJ?p=preview

+0

okej, która zdecydowanie odpowiedziała na moje pytanie. Myślę, że moim problemem jest to, że obiekty daty przychodzące z mongo wracają jako ciągi, a nie jako obiekty, ale może to być spowodowane tym, że były to dane testowe, które wprowadziłem ręcznie i zrobiłem to źle. –

+0

@DaltonShehan Możesz po prostu zrobić z niego nowy obiekt daty z następującym ciągiem znaków: 'new Date ('2006-01-01T04: 00: 00.000Z')' – laggingreflex

+0

Dobrze, że skończyło się dziękuję za pomoc. –

6

kątowe można bezpośrednio porównać datę, jeśli są dobrze sformatowane:

widok

li.list-group-item(ng-if="app.Segments[0].StartDate > now") 

kontroler

$scope.now = new Date(); 
$scope.now.toISOString();