0
所以,我刚刚做了一个大“哦!时刻。查询IndexedDB&AngularJS上的MomentJS日期 - 日期与字符串
我在离线应用程序中使用MomentJS和AngularJS和IndexedDB。
我的所有记录都根据对象的date属性与索引date_idx
一起存储。
问题是当我尝试运行基于使用下面的代码查询日期:
$scope.redoresults = function(){
$indexedDB.openStore('records', function(store){
$scope.upper = moment($scope.dates.endDate).format("DD[/]MM[/]YYYY");
$scope.downer = moment($scope.dates.startDate).format("DD[/]MM[/]YYYY");
var find = store.query();
find = find.$between($scope.downer, $scope.upper, false, false);
find = find.$index("date_idx");
store.eachWhere(find).then(function(e){
$scope.daterange = e;
console.log($scope.daterange);
});
});
};
查询提供了奇怪的结果,有时是正确的,有时没有。 直到我意识到我实际上是在查询字符串,而不是日期。 因此,在01/08/2016和31/08/2016之间查询的查询,仍然会为我提供包含20/09/2016的结果,因为作为一个数字它确实在该范围之间。
我觉得我错过了一些结构明智的东西。
有关如何解决此问题的任何评论?
我应该针对其他索引进行查询吗?但是,我怎样才能比较日期?
将日期存储为ISO字符串或时间戳 – charlietfl