如何在appcelerator中按日期对一组数据进行排序

时间:2016-03-04 04:57:58

标签: javascript appcelerator appcelerator-titanium

有人知道如何在appcelerator中整理出一组数据吗?我尝试了一些示例代码,它工作正常。但是在我的场景中实施时却无法正常工作。就我而言,我将数据添加到数据库中,并通过调用数据库中的数据对其进行排序。日期格式是这样的" yyyy-mm-dd hh:mm:ss"

这是我的代码:

var DummyData = [];
var isDatess=true;

var sampleData= Alloy.createCollection('samplePage');
sampleData .fetch({query:"SELECT * FROM dummyValfromDB"});
if(sampleData.length > 0){
        isDatess=true;
        for (var i = 0; i < sampleData.length;i++) {
        var did = sampleData.at(i).get('did');
        var dummyName = sampleData.at(i).get('dummyName');
        var dummydate= sampleData.at(i).get('dummydate');
        var dummyuid= sampleData.at(i).get('dummyuid');

        sampleData.push({
             "label_dummy_name": { text: dummyName},
             "label_dummydate":{text: dummydate},
             "label_dummyuid":{text: dummyuid},      
        });
    }
        DummyData.sort(sorting);
}

  function sorting(a,b){  
    var dateA = new Date(a.label_dummydate).getTime();
    var dateB = new Date(b.label_dummydate).getTime();
    var result="";
    if(isDatess)
        result=dateA > dateB ? 1 : -1;  
    else
        result=dateA < dateB ? 1 : -1;
    return result;  

  }; 


$.dummyList.sections[0].setItems(DummyData);

5 个答案:

答案 0 :(得分:1)

对于您的用例,您是否可以在SQL查询中使用ORDER BY按日期或日期时间升序或降序对数据进行排序?

答案 1 :(得分:1)

我得到了答案。 NaN在执行时显示,并通过添加文本解决。找到我在下面得到的答案。

yii

感谢您的帮助。我想这可能会对你有所帮助....干杯!!!!

答案 2 :(得分:0)

这只是一瞥,但是当你应该使用a.label_dummydate.text时,看起来你在排序函数的日期构造函数中使用了.label_dummydate。你正在使用的是一个对象文字,而不是你想要的字符串内容,所以它使得无效的日期无法正确比较

答案 3 :(得分:0)

可以使用内置于Alloy的Underscorejs库进行排序。

您可以使用_.sortBy()作为案例。请参阅usage

此帖还专门讨论了使用下划线sortBy对日期进行排序。 Array with object sorting with Underscore sortBy

答案 4 :(得分:0)

Alloy内置moment.js,在我看来它比Date更容易(无论是使用和阅读代码),还提供了很多实用程序来比较两个日期;如果你对国际化感兴趣,也很容易做到。