我正在编写一个Facebook聊天机器人,我从用户那里收到日期和时间,我想创建一个Date()类型的对象。
用户接受的格式:
日期:
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 :(得分:2)
JavaScript的日期/时间支持非常有限,通常建议使用库来满足任何解析要求。
在我看来,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/