Javascript 带日期字符串的角度orderBy

Javascript 带日期字符串的角度orderBy,javascript,angularjs,datetime,Javascript,Angularjs,Datetime,我正在尝试按日期在我的web应用程序中排序事件(在本例中,从我的数据库中选择“开始”日期)。我遇到了日期排序不正确的问题。我相信他们是按字母数字排序,而不是按日期排序,因为我的“开始”字段是字符串。我的问题是,如何最好地将此字段转换为日期,以便正确排序?相关代码如下: html: <div ng-repeat="event in events | orderBy:'start'">{{event.city}}</div> 示例数据库对象: { "_id": {

我正在尝试按日期在我的web应用程序中排序事件(在本例中,从我的数据库中选择“开始”日期)。我遇到了日期排序不正确的问题。我相信他们是按字母数字排序,而不是按日期排序,因为我的“开始”字段是字符串。我的问题是,如何最好地将此字段转换为日期,以便正确排序?相关代码如下:

html:

<div ng-repeat="event in events | orderBy:'start'">{{event.city}}</div>
示例数据库对象:

{
  "_id": {
      "$oid": "54978d87ac1e3caaeee8452c"
  },
  "event": "New Years Eve - Times Square",
  "city": "New York",
  "state": "New York",
  "date": "December 31, 2014",
  "start": "December 31, 2014",
  "end": "January 1, 2015",
  "radius": "400",
  "team_1": "",
  "team_2": "",
  "object_id": "10897094",
  "longitude": "-73.9848931",
  "latitude": "40.7591529",
  "photos": []
}

结果证明这是一个非常简单的解决方案。我只是将以下代码添加到我的
事件中的控制器中。get

for (var i = 0, max = response.length; i < max; i++) {
        $scope.events[i].start = new Date(response[i].start);
}
for(变量i=0,max=response.length;i
将字段转换为返回数据的控制器或服务中的日期对象。或更短的
angular.forEach($scope.events,function(event){event.start=new date(event.start);}):)嗨,Matt,它在浏览器中是如何显示的,实际上有一个场景,其中日期显示为“2016年8月31日21:26:11”,并且希望执行升序和降序,您能提供同样的帮助吗。。谢谢。@DelliKilari在这种情况下,您需要为对象设置一个新属性,例如
event.preformattedate
,而不是
orderBy:preformattedate
for (var i = 0, max = response.length; i < max; i++) {
        $scope.events[i].start = new Date(response[i].start);
}