我正在尝试比较2个日期并使用结果过滤我的数据:
我的控制器:
$scope.checkDate = function(startDate){
var todaysDate = new Date();
return function(coupon){
return coupon[startDate]<= todaysDate;
};
}
我的HTML
<div class="col-sm-3" id="coupon-tiles" ng-repeat="coupon in allCoupons| filter: checkDate('startDate')" ng-if="coupon.amount>0" >
<div>
<image ng-src={{coupon.image}}>
</div>
<div>{{coupon.title}}</div>
<div>price:{{coupon.price}}</div>
<div>start date:{{coupon.startDate}}</div>
<div>end date:{{coupon.endDate}}</div>
<div class="btn-group" role="group" aria-label="...">
<button type="button" class="btn btn-default" ng- click="buy(coupon)">Purchase</button>
</div>
</div>
优惠券通过json从db到达,日期是java sql日期,因此格式为yyyy,mm,dd,Jersey和Jackson进行解析。
似乎没有任何作品,有人可以提供帮助
答案 0 :(得分:1)
您的数据库日期是字符串格式。您需要将其转换为JS Date对象以进行比较。请尝试以下方法:
$scope.checkDate = function(startDate){
var todaysDate = new Date();
return function(coupon){
return Date.parse(coupon[startDate]) <= todaysDate;
};
}
答案 1 :(得分:0)
尝试简化过滤器功能,如
$scope.checkDate = function(startDate){
return startDate.getTime() <= new Date().getTime();
}
在你的HTML中
<div class="col-sm-3" id="coupon-tiles" ng-repeat="coupon in allCoupons| filter: checkDate(coupon.startDate)" ng-if="coupon.amount>0" >
答案 2 :(得分:0)
我正在尝试这个,这是有效的:
$callPlans = CustomerCallPlan::whereNotNull('id')->get();
foreach ($callPlans as $callPlan) {
$callPlan->numbertemplate = (whetever you need);
$callPlan->save(); //save the changes
}
要使用var startDate = $filter('date')($scope.StartDate, "yyyy-MM-dd");
var endDate = $filter('date')($scope.EndDate, "yyyy-MM-dd");
if (startDate > endDate) {
//some code
}
,您需要在控制器中注入$filter
。