我有一个注册表格,询问用户他们的开始日期。我正在使用MEAN框架,这意味着我在前端使用AngularJs。
到目前为止我做了什么:
首先我尝试使用以下代码,但它不适用于IE&火狐。
<input type="date" name="startDate">
然后我尝试了我在this问题上找到的以下REGEX。
^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
完美的作品。以下是我的应用程序中的工作原理图片。
问题:
当用户提交表单时,数据将保存在MongoDB中。在上图中,您可以看到数据保存为字符串。我想将其转换为正确的日期格式,以便我可以在服务器端(Node.js)执行操作,即过滤所有在2015年之后开始或在1999年之间离开的用户。 2001等。
任何建议都会有所帮助。
更新
目前我正在测试moment.js。我得到结果后会更新我的问题。
结果:
我使用moment.js尝试了以下内容:
console.log("MOMENT" + moment("1993-03-25").format());
以下内容的输出是:
MOMENT 1993-03-25T00:00:00+00:00
我不确定这是否是在MongoDB中保存的正确格式,并且它允许我对其执行服务器端操作。
答案 0 :(得分:0)
您需要将moment
对象转换为JavaScript日期,然后才能将MongoDB保存为日期字段:
moment("1993-03-25").toDate()