提交到mongoDB之前的格式化日期?

时间:2015-05-24 12:16:37

标签: node.js mongodb express mongoose

这是我的架构

created_at: {
  type: Date,
  default: Date.now
},
updated_at: {
  type: Date,
  default: Date.now
 }

我需要将我的Date.now格式化为HH:MM。如果可以的话,我可以在将它提交到数据库之前做到这一点。我需要在玉石文件中显示格式化的日期。

如果有帮助,这是一个node.js应用程序!

2 个答案:

答案 0 :(得分:2)

正如damphat指出的那样,你应该在数据库中存储一个Date对象,并在View中进行格式化。因此,在从数据库中检索对象之后,在将其插入模板之前,您应该应用格式化功能。

此方法将为您提供更大的灵活性,如果将来您决定更改在Web应用程序中显示日期的方式,则只需更改格式化功能。坚持原始想法需要更改每个数据库条目。

我建议使用moment.js在视图中进行格式化。只需导入moment.js并执行以下操作:

var formattedDate = moment(obj.created_at).format("HH:mm");

答案 1 :(得分:1)

时间格式应在View中完成,而不是在模型中完成。

如果你真的想用格式存储时间,你必须使用String的类型而不是Date。

并编写自己的默认函数:

function hhmm () {
   var now = new Date();
   return now.getHours() + ':' + now.getMinutes();
}

created_at: {
  type: String,
  default: hhmm
},