我有一個註冊表單,詢問用戶的開始日期。我正在使用MEAN框架,這意味着Im在前端使用AngularJs。從字符串格式到日期格式的隱藏日期輸入
我迄今所做的:
首先我嘗試使用下面的代碼,但它不能在IE瀏覽器火狐&工作。
<input type="date" name="startDate">
然後我嘗試了以下REGEX,我發現this SO問題。
^(?:(?: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等。
任何建議都會有所幫助。
UPDATE:
目前我正在測試moment.js。一旦我有結果會更新我的問題。
結果:
我嘗試以下使用moment.js:
console.log("MOMENT" + moment("1993-03-25").format());
以下的輸出是:
MOMENT 1993-03-25T00:00:00+00:00
我不知道這是否是正確的格式保存在MongoDB中,並允許我對它執行服務器端操作。
這是從蒙戈文檔'內部,Date對象存儲爲一個64位整數代表自Unix時代(1970年1月1日)以來的毫秒數,其結果是在過去和未來約有290億年的可表示日期範圍。' – Aukhan