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