2017-06-21 14 views
5

Tôi lặp qua một mảng các đối tượng mà tất cả đều có thuộc tính ngày tháng. Điều kiện tôi đặt bên trong vòng lặp để so sánh ngày của đối tượng với ngày hôm nay sẽ chỉ quan tâm đến một vài đối tượng trong mảng mà tôi muốn giữ vì ngày cũ, điều kiện này sẽ loại bỏ tất cả các đối tượng trong mảng một số lý do.cách giữ đối tượng với một ngày cũ ra khỏi mảng của tôi

Nó không hoạt động để sử dụng getTime(). getTime loại bỏ mọi thứ khỏi mảng. Giống như tôi đã cố gắng ở đây:

constructor ( public navCtrl: NavController, 
           public modalCtrl: ModalController, 
           public loading: LoadingController, 
           public popoverCtrl: PopoverController, 
           public getPostSrvc: getPostsService) { 

     this.listOfEvents = []; 

     let that = this; 

function getPostsSuccess (listOfEventsObject) { 

        for (var i in listOfEventsObject) { 

         if(listOfEventsObject[i].date.getTime() < Date.now()){ 

           that.listOfEvents.push(listOfEventsObject[i]); 

           }//close if 
        }//close for loop 
    }//close function 
}//close constructor 

CẬP NHẬT Giải pháp của tôi:

export class Home { 

    listOfEvents: Array<any> = []; 
    parseDate: number; 
    today : number; 

    constructor ( //constructor stuff){ 

     for (var i in listOfEventsObject) { 

      that.today = Date.now(); 


       that.parseDate = Date.parse(listOfEventsObject[i].date); 

       if(that.parseDate > that.today){ 

         that.listOfEvents.push(listOfEventsObject[i]); 

        }//close if 


       }//close for 
}//close constructor 
}//close export 
+0

giá trị của 'listOfEventsObject là gì [i] .date'? – RobG

+0

@RobG ngày có ngày lựa chọn từ bộ chọn ngày theo biểu mẫu .. – Spilot

+2

Trong trường hợp đó, bạn có thể so sánh chuỗi như "2017-06-21" với số như 1498078203780. – RobG

Trả lời

1

Nếu, như đã đề cập bởi RobG trong một chú thích, giá trị của listOfEventsObject[i].date là một chuỗi, bạn có thể phân tích nó đầu tiên, và so sánh kết quả ngày giá trị cho Date.now():

if (Date.parse(listOfEventsObject[i].date) < Date.now()) { 
    ... 
} 
0

Tôi không thể nói chắc chắn kể từ khi tôi không biết những gì loại dữ liệu listOfEventsObject[i].date có. Nhưng nếu dữ liệu đó chứa dấu thời gian, bạn có thể chuyển đổi nó thành mili giây và so sánh nó với Date.now().

if (listOfEventsObject[i].date.getTime() < Date.now())

cho tôi biết nếu đây không phải là câu trả lời bạn đang tìm kiếm, cổ vũ.

+1

Toán tử '<' sử dụng thuật toán so sánh [* abstract relational *] (http://ecma-international.org/ecma-262/7.0/index.html#sec-abstract-relational-comparison) kết hợp ngày với số , do đó, không có sự khác biệt thực tế giữa 'date RobG

Các vấn đề liên quan