首页 > 解决方案 > Mongoose 以 ddmmyyyy 格式保存日期

问题描述

我的 mongo 数据库中有几个Date类型的字段。

使用 Node 和 Express,我可以使用“ moment ”以我想要的任何格式提取和显示日期。

当我使用“ findByIdAndUpdate ”将它们保存回来时,日期将被反转或返回无效错误。

message: 'Cast to date failed for value "29-12-2018" at path

我的问题是表单以 ddmmyyyy 格式返回日期,而我认为 mongo 需要以 mmddyyyy 格式发回日期。

必须有一个简单的解决方案。

标签: node.jsmongodbdatemomentjs

解决方案


我设法使用 Moment 包编写了解决方案。在上面的原始帖子中查看我的最终代码

router.put("/user/:id", function(req, res){
req.body.user.weddingDate = moment(req.body.user.weddingDate, 'DD-MM-YYYY').format('MM-DD-YYYY');
User.findByIdAndUpdate(req.params.id, req.body.user, function(err, updatedUser) 
{
   if(err){
       console.log(err);
       res.redirect("/admin");
   }  else {
       res.redirect("/admin");
  }
 });
});

推荐阅读