无法用moment.js覆盖date

我有一个活动和MongoDB的集合。 活动也有一个date。 我正在尝试dynamic构build一个表,其中包含保存在我的集合中的所有活动。 因此,我想在将JSON对象数组发送到我的玉文件之前,使用moment.js更改date的格式。

我试图做一个新的结果数组,并将其发送到我的玉文件。

router.get('/', function(req, res, next) { activitiesController.getActivities(function(results) { if(!results) { results = []; } for(var key in results) { results[key].date = moment(results[key].date).format('ddd, hA'); } res.render('index', { activities: results }) }); }); 

这是结果数组的外观:

 [{ "_id" : ObjectId("56fe2c0d7afcafa412ae19c2"), "title" : "Fitnessstudios", "category" : "Sport", "time" : 2, "date" : ISODate("2016-03-30T00:00:00.000Z"), "__v" : 0 }] 

你的问题是,你传递给moment.js的值是:

 ISODate("2016-03-30T00:00:00.000Z") 

当它只需要datestring部分时:

 "2016-03-30T00:00:00.000Z" 

所以得到datestring,并通过,下面的代码片段显示了如何做到这一点。

 var dateString = 'ISODate("2016-03-30T00:00:00.000Z")'.replace(/^[^\"]+\"([^\"]+)\".*$/,'$1'); document.write(dateString); 

改变这个:

 moment(results[key].date).format('ddd, hA'); 

 moment(new Date(results[key].date.toString()),moment.ISO_8601).format('ddd, hA');