как заставить сравнение даты работать?

0

Я не понимаю, почему это сравнение даты не работает в 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

Теги:
date
ng-grid

2 ответа

1

Почему бы вам не сделать это вместо этого:

var itemDate = new Date(item.date);
var compareDate = new Date('1/1/2025');

if (itemDate < compareDate) {
  .....
}
0

Почему бы не сравнить временную метку напрямую, а именно: -

var itemDate = new Date(item.date).getTime();
var compareDate = new Date('1/1/2025').getTime();

if (itemDate < compareDate) {

}
  • 0
    как я могу установить формат даты на европейский / американский?
  • 0
    Почему вам нужно установить формат?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню