簡體   English   中英

兩個日期之間的自定義過濾器

[英]Custom filter between two dates

我正在嘗試過濾兩個日期之間的數據。 我正在嘗試修復它,但無法完成。 誰能幫我?

我的html:

<input type="date" ng-model="from_date">
<input type="date" ng-model="to_date">

我的ng-repeat:

<tr ng-repeat="item in outlets | dateRange:from_date:to_date">
    <td>{{ item.offerID }}</td>
    <td>{{ parseDate(item.startDate) | date:'yyyy-MM-dd' }}</td>

我的劇本:

 app.filter('dateRange', function () {
    return function (items, fromDate, toDate) {
        var filtered = [];
        console.log(fromDate, toDate);
        var from_date = Date.parse(fromDate);
        var to_date = Date.parse(toDate);
        angular.forEach(items, function (item) {
            if (item.startDate > from_date && item.startDate < to_date) {
                filtered.push(item);
            }
        });
        return filtered;
    };
});

來自服務器的jason數據:

{
"offerID": "1"
, "merchant": "Rifa Ladies Salon"
, "outelt": "Rifa Ladies Salon Business Bay"
, "offer": "Rifa Ladies Salon- Offer 1"
, "offerStatus": "LIVE"
, "startDate": "2016-07-12"}

您正在按Date.parse進行比較,但在過濾器比較中:

if (item.startDate > from_date && item.startDate < to_date) {

item.startDate是' YYYY-MM-DD'格式, from_dateto_date是Date.parse()的時間戳

因此,您只需要選擇是否使用Date.parse()? 這是您的解決方法:

if (Date.parse(item.startDate) > from_date && Date.parse(item.startDate) < to_date) {
}

完整的過濾器:

app.filter('dateRange', function () {
    return function (items, fromDate, toDate) {
        var filtered = [];
        var from_date = Date.parse(fromDate);
        var to_date = Date.parse(toDate);
        if (!to_date || !from_date) {
            return items;
        }
        angular.forEach(items, function (item) {
            if (Date.parse(item.startDate) > from_date && Date.parse(item.startDate) < to_date) {
                filtered.push(item);
            }
        });
        return filtered;
    };
});

工作提琴: http : //plnkr.co/edit/SPnN4wptw1Sltsp1lawD?p=preview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM