2017-01-22 143 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