2017-01-22 146 views
0

我正在編程一個Facebook聊天機器人,並從用戶接收日期和時間,我想創建一個Date()類型的對象。Javascript獲取日期()對象從字符串時間和日期

接受的格式從用戶:

日期:

15.9.2017 
15/9/2017 
15/09/2017 
15.09.2017 

時間:

15:30 et 
15:30 
3pm et 
3pm 

你會建議我一些庫(我已經看了moment.js)?你會如何解析這些格式?

編輯

對於時間驗證我用這個表達式:

/((0?[0-9]{1,2} ?(pm|am) ?(et|at)?)|(0?[0-9]{1,2}:0?[0-9]{1,2} ?(pm) ?(et|at)?)|(0?[0-9]{1,2}:0?[0-9]{1,2} ?(et|at)?))/ 

對於日期驗證我用這個表達式:

/(0?[1-9]|[12][0-9]|3[01])[\/\-\.](0?[1-9]|1[012])[\/\-\.]\d{4}/ 
+0

使用新的日期(15/9/2017)替換爲點(「/」或「 - 」 ) –

+0

不,我需要包括時間和所有格式 – durisvk

+0

這些都是被接受的格式嗎? 2016-12-25會被拒絕嗎? – trincot

回答

2

JavaScript有非常有限的日期/時間支持,並且通常是建議ded使用庫來解析任何需求。

在我看來,JavaScript的事實上的日期時間庫它Moment.js

使用Moment.js,你可以在你的例子提供一個日期字符串一樣,用它描述了格式的日期字符串是在格式字符串沿着

例如:

var date = moment("15.9.2017", "D.M.YYYY"); 

對於次您可以使用H:m:s格式的字符串,並且還有一個用於額外時區操作的時區擴展。

所有的文檔都可以在https://momentjs.com/docs/,解析部分是在這裏:點(。)點的情況下https://momentjs.com/docs/#/parsing/

+0

和時間呢? – durisvk

+0

編輯,以提供有關時間的信息。 – Greg