2016-04-21 50 views
0

我有一个mongo db集合,如下所示。在mongojs和angularjs应用中格式化日期

{ 
    "_id": { 
     "$oid": "57048f2f60b18f8e186e65b6" 
    }, 
    "ID": 1, 
    "Room_ID": 303, 
    "StartTime": "2016-03-12T11:00:00Z", 
    "EndTime": "2016-03-12T12:00:00Z", 
    "Login_ID": "ABCDE" 
} 

我正在使用db.collection.find()查询来获取结果。我试图显示日期的两部分1. DD-MM-YY和2. HH-MM-SS。 我有两个想法。 1.从collection.find()命令中获取所需格式的日期或2.在将记录提取到游标中后,使用angularjs代码解析它以区分日期和时间值。

我试过了MongoDB的$dateToString,但无法得到结果。其实我很困惑。

db.RoomReservation.aggregate({ $project: {"Login_ID": "ABCDE", dt: { $dateToString: { format: "%Y-%m-%d", date: "$StartTime"}}}}); 
assert: command failed: { 
     "errmsg" : "exception: can't convert from BSON type String to Date", 
     "code" : 16006, 
     "ok" : 0 
} : aggregate failed 

是否有人可以帮我获得的collection.find()输出的格式如下

Room_ID, Date, StartTime, EndTime, Login_ID 
303, 2016-03-12, 11:00, 12:00, ABCDE 
+0

这是为MongoDB版本3.0或更高版本。你使用的是什么版本的MongoDB? –

+0

嗨,我使用的'3.2.4'版本 –

+0

你应该离开日期格式到UI层。有像Moment.js这样的功能强大的库可以以任何期望的格式显示日期。 – titogeo

回答

3

您可以使用过滤器简单地分析在角部位的日期,如果你想..

 <span>{{ | date:'dd-MM-yyyy @ HH:mm:ss Z'}}</span> 

您可以参考更多日期选项here

+0

非常感谢您的简单解决方法。它帮助了我,尽管我必须找出解决时区问题的办法。 :) –