在AngularJS中将字符串日期转换为可排序日期

时间:2016-04-27 20:05:41

标签: angularjs

我有以下代码,只要按所需属性排序就可以正常工作:

<select ng-model="sortorder">
   <option value="name">Sort by Name</option>
   <option value="created">Sort by Date</option>
</select>

<div ng-repeat="item in items | orderBy:sortorder">
    {{item.name}}, {{item.created}}
</div>

然而,日期以字符串形式出现,例如:2016年4月5日,这并没有给我准确的排序。如何检测列表是否按created排序,然后将其转换为Date对象以获得准确的结果。

样品输出:
样本名称1,2016年4月6日
样本名称2,2014年1月13日

1 个答案:

答案 0 :(得分:1)

您必须将日期转换为时间戳(即自......以来的秒数)才能准确排序。请注意时区,因为javascript日期取决于用户的计算机/浏览器设置。我建议您查看MomentJS以处理日期操作。

您无法检测用户是否选择格式化日期进行排序。相反,您将向存储日期的时间戳版本的每个数据行添加一个附加元素。你可以在你的控制器中做到这一点。