有人知道如何在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);
答案 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更容易(无论是使用和阅读代码),还提供了很多实用程序来比较两个日期;如果你对国际化感兴趣,也很容易做到。