st-sort不适用于日期列

时间:2017-07-05 04:12:22

标签: angularjs sorting smart-table

我正在为我的角项目使用智能表。我面临着排序具有Date类型数据的表列的问题。我得到以毫秒为单位的列信息,我转换为日期类型。当日期没有应用任何格式时,它就像它一样工作。但是,如果我应用格式化以使其更易于阅读,则排序无法正常工作,一半数据已排序,另一半则未排序。 如果我还要应用格式,我该如何对日期类型列进行排序?

这是我到目前为止所尝试的代码片段

for(var i=0; i<$scope.rowCollection.length; i++)
{

$scope.rowCollection[i].ltime = 
(new Date($scope.rowCollection[i].lastRegisteredTime )).toLocaleString();

$scope.rowCollection[i].rtime = 
(new Date($scope.rowCollection[i].registeredTime)).toLocaleString();

}

在此,lastRegisteredTime和registeredTime是以毫秒为单位的数据。如果我只是将数据转换为Date而不是toLocaleString(),则排序有效。但是,为用户阅读信息并不困难,因为我也希望显示时间信息。

感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:1)

由于 toLocaleDateString 返回一个字符串,因此您无法按ltime排序,就像它是一个真实日期对象一样。我建议您将该字段保留为日期对象,然后在视图中使用日期过滤器,您希望在哪里显示日期。

         <span>{{row.ltime|date:'YYYY/MM/DD'}}</span>

          <span>{{row.ltime| date:'fullDate'}}</span>