Javascript从字符串时间和日期获取Date()对象

时间:2017-01-22 17:27:32

标签: javascript

我正在编写一个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}/

1 个答案:

答案 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/