将日期输入从String格式转换为Date格式

时间:2016-03-01 09:44:03

标签: javascript angularjs node.js mongodb date

我有一个注册表格,询问用户他们的开始日期。我正在使用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})$

完美的作品。以下是我的应用程序中的工作原理图片。

enter image description here

问题:

当用户提交表单时,数据将保存在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中保存的正确格式,并且它允许我对其执行服务器端操作。

1 个答案:

答案 0 :(得分:0)

您需要将moment对象转换为JavaScript日期,然后才能将MongoDB保存为日期字段:

moment("1993-03-25").toDate()