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

时间:2009-11-24 18:10:37

标签: 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

我该怎么做?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:57)

似乎getTime似乎无法解决上述问题。

Date.parse(currentDate)/1000

答案 2 :(得分:4)

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

var d = new Date();

d/1000
> 1510329641.84

d.getTime()/1000
> 1510329641.84

答案 3 :(得分:0)

使用日期选择器获取日期和时间选择器,我得到两个变量,这就是我将它们以unixtime格式放在一起然后拉出它们的方法...

let datetime = oDdate+' '+oDtime;
let unixtime = Date.parse(datetime)/1000;
console.log('unixtime:',unixtime);

证明:

let milliseconds = unixtime * 1000;
dateObject = new Date(milliseconds);
console.log('dateObject:',dateObject);

享受!