2016-03-04 49 views
1

是否有人知道如何在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); 
+1

假设您传递给* Date *的格式可以正确解析(并且很有可能它不会在至少某些浏览器中),那么sort函数可以大大简化为如下所示:'返回新的日期(a.label_dummydate) - 新的日期(b.label_dummydate)'。 – RobG

回答

1

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

function sorting(a,b) { 
      var valA = a.label_dummydate.text; 
      var valB = b.label_dummydate.text; 

      var dateA = new Date(val_a).getTime(); 
      var dateB = new Date(val_b).getTime(); 
      var result=""; 

      if(isDatess) 
       result=dateA > dateB ? 1 : -1; 
      else 
       result=dateA < dateB ? 1 : -1; 
      return result; 
     }; 

感谢您的帮助。我认为这可能会帮助你的人......干杯!

0

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

0

合金有moment.js内置,在我看来它比Date更易于使用和阅读代码,它还提供了很多工具来比较两个日期;如果你对国际化感兴趣,也很容易做到。

1

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

+0

嗨...是的,我做到了这一点,它适用于我。但在某些情况下不能从别人处获得。所以我只是把代码本身放在一边。找到我发布的代码。这对我来说可以 – Dev786