2016-01-30 153 views
1

我想检查一个广告系列目前是否有效。日期deal.Campaign.startdeal.Campaign.end是来自我后端的字符串,now是日期对象。如何将字符串转换为HTML文件中的日期对象?在Angular JS中比较日期

理想情况下,我会在控制器中创建日期对象,但这不起作用,因为我循环遍历HTML文件中的对象。

controller.js:

$scope.now = new Date(); 

HTML:

<span ng-repeat="deal in deals"> 
    <span ng-show="deal.Campaign.start < now && deal.Campaign.end > now"> 
     <span>Active</span> 
    </span> 
</span> 

回答

1

我会解决的办法,这是把所有Date s转换MS字符串:

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

而且相同与您的其他日期:

$scope.deal.Campaign.start = Date.parse($scope.deal.Campaign.start);

这样你就可以简单地比较数字。

考虑ng-repeat,这仍然是可行的,但通过函数:

$scope.formDate = function(date) { 
    return new Date(date).getTime(); 
} 

而在你的HTML:

<span ng-show="formDate(deal.Campaign.start) < now && formDate(deal.campaign.end) > now"> 
+0

我遍历'在HTML文件中deals'。我怎么能在那里做到这一点? – doonot

+0

啊,错过了'ng-repeat'。更新答案(尽管它可能不那么漂亮) –

+0

您能否保证* Date.parse *将正确解析所提供的格式,特别是因为“* ...来自我的后端*的字符串”可能是任何东西,* Date.parse *是几乎完全依赖于实现? – RobG