2014-10-18 103 views
11

我期待比较ng中的两个日期 - 如果这是我的jade文件的样子。AngularJs ng-if比较日期

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 

如果第一部分的开始日期是今天之后,此代码将有希望为我的用户界面添加li。

$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 
    }] 

} 

是否有反正做这项工作?

+1

我假设这些细分实际上是字符串? – Josh 2014-10-18 01:04:01

+0

它们作为日期对象存储在mongoDB中并拉入控制器。我只是试图展示数据的外观。 – 2014-10-18 01:06:01

回答

13

如果他们约会的对象只是直接对它们进行比较,而不.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

没关系,肯定回答了我的问题。我认为我的问题是来自mongo的日期对象会以字符串形式返回,而不是作为对象返回,但这可能是因为它是我手动输入的测试数据并且做错了。 – 2014-10-18 01:38:41

+0

@DaltonShehan你可以用这样的字符串把它变成一个新的日期对象:'new Date('2006-01-01T04:00:00.000Z')' – laggingreflex 2014-10-18 01:45:45

+0

正确的是,我最终做了感谢的帮助。 – 2014-10-18 01:51:21

6

角可以直接比较不同的日期,如果他们很好格式化:

视图

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

控制器

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