Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular JS-在ng repeat表上按输入日期订购,仅按月份和日期订购,不按年份订购_Javascript_Angularjs - Fatal编程技术网

Javascript Angular JS-在ng repeat表上按输入日期订购,仅按月份和日期订购,不按年份订购

Javascript Angular JS-在ng repeat表上按输入日期订购,仅按月份和日期订购,不按年份订购,javascript,angularjs,Javascript,Angularjs,我有一个重复语句,我需要按日期字段(entry_date)排序。 到目前为止,它仅使用以下代码按月份和日期进行订购: <tbody ng-repeat="transaction in transactions | orderBy:'-entry_date'"> <tr> <td>

我有一个重复语句,我需要按日期字段(entry_date)排序。 到目前为止,它仅使用以下代码按月份和日期进行订购:

<tbody ng-repeat="transaction in transactions | orderBy:'-entry_date'">
                                <tr>
                                    <td>
                                        <input ng-model="transaction.selected" type="checkbox"/>
                                    </td>
                                    <td>
                                        <span>{{ transaction.entry_date | date:'yyyy-MM-dd HH:mm' }}</span>
                                    </td>
                                    <td>
                                        <span>{{ transaction.description }}</span>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
这是最后一页:

2017-02-12 01:00    
2017-02-12 01:00    
2017-02-12 01:00    
2017-02-12 01:00    
2017-02-11 01:00    
我还尝试过使用回调函数:

  $scope.sortDates = function(transaction) {
    var date = new Date(transaction.entry_date);
    return date;
};
但这只是以与我的原始代码相同的方式返回数据

有没有办法让过滤器使用年份和月份/日期


提前谢谢

实际上,我认为您需要返回一个整数,如果整数为正,则第一个元素比第二个元素大
如果为负,则小于第二个值,如果整数等于零,则两者都相同。
您可以使用矩来获取两个日期的unix时间戳,并将其减去。
类似于

function(a, b){
    return moment(a).unix() - moment(b).unix();
}

我没有测试代码。

实际上,我认为您需要返回一个整数,如果整数为正,则第一个元素大于第二个元素
如果为负,则小于第二个值,如果整数等于零,则两者都相同。
您可以使用矩来获取两个日期的unix时间戳,并将其减去。
类似于

function(a, b){
    return moment(a).unix() - moment(b).unix();
}

我还没有测试代码。

您可以在angularJS orderBy中使用回调(函数),我建议使用矩JS来比较和排序日期。我尝试了这个方法,得到了相同的结果:$scope.sortDates=function(transaction){var date=new date(transaction.entry_date);return date;};您可以在angularJS orderBy中使用回调(函数),我建议使用矩JS来比较和排序日期。我尝试了这个方法,得到了相同的结果:$scope.sortDates=function(transaction){var date=new date(transaction.entry_date);return date;};谢谢你的帮助,我在没有时间的情况下尝试了类似的东西,但没有成功。刚刚尝试过,但不幸的是,它仍然没有按年份排序。日期的所有其他部分按天、月、时间排序。只是不是一年。你是想按日期的每一部分对它们进行排序吗?在这种情况下,您需要在对日期进行排序之前对日期进行拆分。尝试按年份、月份和日期进行排序。我有6页的数据,最后一页是我在第一页期望的数据。第一页是我希望在最后一页得到的数据,然后你需要按子代顺序排序。查看此链接谢谢您的帮助,我曾经尝试过类似的方法,但没有立即成功。刚刚尝试过,但不幸的是,它仍然没有按年份排序。日期的所有其他部分按天、月、时间排序。只是不是一年。你是想按日期的每一部分对它们进行排序吗?在这种情况下,您需要在对日期进行排序之前对日期进行拆分。尝试按年份、月份和日期进行排序。我有6页的数据,最后一页是我在第一页期望的数据。第一页是我希望在最后一页得到的数据,然后你需要按子代顺序排序。检查此链接