如何按日期从#34; yyyy-mm-ddT00:00:00"等格式订购商品。

时间:2015-01-15 12:17:12

标签: javascript json angularjs date

我正在获得一个包含项目数量的json对象

   "[{"StartDate":"2015-01-16T00:00:00","EndDate":"2015-01-20T00:00:00"},
    {"StartDate":"2015-01-15T00:00:00","EndDate":"2015-01-16T00:00:00"}]"

我希望在DESC订单

的客户端表上订购

这是请求并返回json答案的函数

  function getTrips() {

        //set loading indicator
        vm.searchData.isLoading = true;
        return datacontext.getTrips(vm.searchData.getTripsFilter)
            .success(function (result) {
                try {
                    //set loading indicator
                    vm.searchData.isLoading = false;
                    tripData.trips = result;
                    if (!tripData.trips) {
                        logWarning('dont find trips:(');
                        return;
                    }

                    //post-process trips for display
                    angular.forEach(tripData.trips, tripData.processTrip);

                    //start filtering trips pager
                    vm.searchData.filterTrips();
                    log('found' + tripData.trips.length + ' to this search.');

                    return tripData.trips;
                } catch (e) {
                    logError('error searching trips!', e);
                }
            })
            .error(function (data) {
                logError('error searching trips!', data);
                vm.searchData.isLoading = false;
            });
    }

我认为mybe要添加控制订单的全局参数(但是我得到一个字符串)或者在角度上有一个按日期功能的自动订单,我不会这样做:|

提前感谢您的帮助

2 个答案:

答案 0 :(得分:2)

如果您只是要求简单排序,那么就在这里

HTML

<div ng-controller="DatesCtrl">
    <div ng-repeat="d in dates | orderBy:identity:true" ng-bind="d | date:'medium'"></div>
</div>

的js

var myApp = angular.module('myApp', []);

myApp.controller('DatesCtrl', ['$scope', function($scope) {
    $scope.identity = angular.identity;
    $scope.dates = [ new Date("2015-01-16T00:00:00"), new Date("2015-01-15T00:00:00"), new Date("2015-01-17T00:00:00") ];

 }]);

Example

答案 1 :(得分:1)

由于日期值的格式化方式,或者按字母顺序将它们排序为字符串,或者首先将它们转换为Date个对象,都会导致正确的排序。

因此,您可以使用内置的orderBy过滤器对数据进行排序。这可以在您的控制器中完成:

tripData.trips = $filter('orderBy')(tripData.trips, 'StartDate', true);

或在您看来:

<div ng-repeat="trip in trips | orderBy:'StartDate':true">...</div>

https://docs.angularjs.org/api/ng/filter/orderBy