如何使用我的数组中的旧日期保留对象

时间:2017-06-21 05:51:06

标签: javascript arrays loops date comparison

我遍历一个都具有日期属性的对象数组。在循环中设置的条件我将对象的日期与今天的日期进行比较应该只处理我想要保留的数组中的一些对象,因为旧的日期,但是,这个条件是删除数组中的所有对象某些原因。

使用getTime()无效。 getTime从数组中删除所有内容。就像我在这里试过的那样:

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

更新   我的解决方案:

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 

2 个答案:

答案 0 :(得分:1)

如RobG在评论中提到的那样,listOfEventsObject[i].date的值是一个字符串,您可以先解析它,并将得到的Date值与Date.now()进行比较:

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

答案 1 :(得分:0)

我无法肯定地说,因为我不知道listOfEventsObject[i].date有哪种数据。 但是,如果该数据包含时间戳,您可以将其转换为毫秒并将其与Date.now()进行比较。

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

如果这不是您要找的答案,请告诉我,欢呼。