Я не понимаю, почему это сравнение даты не работает в js. Я связал json файл с элементами, имеющими dateproperties для nggrid. Вот как выглядит функция обновления:
$scope.refresh = function() {
$http.get('data.jon').success(function(data) {
//$scope.myData = data;
//$scope.myData.splice(0,1);
var i=0;
data.forEach(
function(item) {
i++;
console.log(i);
var itemDate = new Date(item.date).valueOf();
var compareDate = new Date('1/1/2025').valueOf();
if (itemDate < compareDate) {
debugger;
console.log(itemDate);
console.log(compareDate);
$scope.myData.push(item);
}
});
});
};
Данные для сетки выглядят так:
[
{
"name": "Moroni",
"age": 50,
"date":"1/1/2015"
},
{
"name": "Tiancum",
"age": 43,
"date":"1/1/2016"
},
{
"name": "Jacob",
"age": 27,
"date":"1/1/2017"
},
{
"name": "Nephi",
"age": 29,
"date":"1/1/2018"
},
{
"name": "Enos",
"age": 34,
"date":"1/1/2019"
}
]
Я бы ожидал увидеть 5 дат, которые будут отображаться в моей таблице, потому что все они удовлетворяют запросу?
Вот плункер: http://plnkr.co/edit/e4ua6k?p=preview
Почему бы вам не сделать это вместо этого:
var itemDate = new Date(item.date);
var compareDate = new Date('1/1/2025');
if (itemDate < compareDate) {
.....
}
Почему бы не сравнить временную метку напрямую, а именно: -
var itemDate = new Date(item.date).getTime();
var compareDate = new Date('1/1/2025').getTime();
if (itemDate < compareDate) {
}