我正在使用Ionic做一个应用程序,我需要在我的火力库中存储日期。但它失灵了,我尝试了orderByChild()等方法;但没有落后工作。
我需要我的firebase这样存储:
相反,它保持这样:
无论如何我能按顺序得到它吗?
这是我约会的地方:
function getCurrentDate(){
var today = new Date();
console.log(today.getMonth());
var dd = today.getDate();
var mm = today.getMonth(); //January is 0!
var month = new Array();
month[0] = "Jan";
month[1] = "Fev";
month[2] = "Mar";
month[3] = "Abr";
month[4] = "Mai";
month[5] = "Jun";
month[6] = "Jul";
month[7] = "Ago";
month[8] = "Set";
month[9] = "Out";
month[10] = "Nov";
month[11] = "Dez";
var yyyy = today.getFullYear();
var currentDate = dd+" "+month[mm]+' '+yyyy;
return currentDate;
}
这是我进入firebase的地方:
function AddServico(date,finalValue,id){
var deffered = $q.defer();
var ref = fb.child('/Barbeiro/'+id+'/Dia/'+date+'/');
ref.once("value")
.then(function(snapshot) {
ref.push().set({'finalValue':finalValue});
deffered.resolve(snapshot);
});
ionicToast.show('Adicionado', 'middle', false, 1500);
return deffered.promise;
}
这是我从firebase阅读的地方:
function GetDias(id){
var query = fb.child('Barbeiro/'+id+'/Dia/');
return $firebaseArray(query).$loaded();
}
以下是我的火力基地如何保留它:
以下是我的应用显示的方式:
答案 0 :(得分:1)
您将日期存储为字符串,不建议这样做。字符串在lexicographical order中排序,这意味着在执行排序时将各个字符相互比较。这与您在字典中对单词进行排序的方式相同。
所以,对于这两个字符串:
第一个字符串是"小于"第二,因为字符的ascii值" 1"小于" 5"。
如果你想在数据库中存储日期,我建议使用数字表示而不是字符串,通常是自unix时期以来的毫秒数。这些数字自然会按照你想要的方式按时间顺序排列。