将日期和时间转换为Unix时间戳

Ben*_*ock 57 javascript regex unix timestamp

我正在显示这样的日期和时间

2009年11月24日17:57:35

我想将它转换为unix时间戳,以便我可以轻松地操作它.我需要使用正则表达式来匹配字符串的每个部分,然后从中计算出unix时间戳.

我对正则表达式很糟糕,但我想出了这个.请建议改进​​^.^

/((\d){2}+)-((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)+)-((\d){4}+) ((\d){2}+):((\d){2}+):((\d){2}+)/gi
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Ian*_*and 86

如果你只是需要一个好的日期解析功能,我想看看date.js.它只需要你可以抛出的任何日期字符串,并返回一个JavaScript Date对象.

一旦你有了一个Date对象,就可以调用它的getTime()方法,该方法将给你1970年1月1日以来的毫秒数.只需将结果除以1000即可得到unix时间戳值.

在代码中,只需包含date.js,然后:

var unixtime = Date.parse("24-Nov-2009 17:57:35").getTime()/1000
Run Code Online (Sandbox Code Playgroud)

  • `Date.parse("2009年11月24日17:57:35").getTime`不是函数.你需要的只是`Date.parse("2009年11月24日17:57:35")/ 1000`.为什么在错误答案时会有这么多的赞成? (32认同)
  • 你甚至不需要图书馆来解析那种格式,对吗? (6认同)
  • 坚持你的正则表达式.如果您使用固定日期格式,则本地化的JavaScript库过度.如果您可以控制此格式,则应考虑使用更中性且更易于解析的内容,例如ISO8601. (4认同)

cho*_*ovy 58

好像getTime上面的答案没有功能.

Date.parse(currentDate)/1000
Run Code Online (Sandbox Code Playgroud)

  • 我猜你的日期格式不正确.你也可以使用moment(datestring).unix() (2认同)

Xeo*_*oss 5

您可以使用Date.getTime()函数或Date对象本身,当被分割时,以毫秒为单位返回时间。

var d = new Date();

d/1000
> 1510329641.84

d.getTime()/1000
> 1510329641.84
Run Code Online (Sandbox Code Playgroud)