Javascript将人类时间转换为时间戳

时间:2012-06-23 20:00:55

标签: javascript date

使用javascript,如何将“人类时间”字符串(例如“Wed Jun 20 19:20:44 +0000 2012”)转换为时间戳值“1338821992”?

4 个答案:

答案 0 :(得分:18)

只需从中创建一个Date对象并执行.getTime()或使用Date.parse()

var d = new Date("Wed Jun 20 19:20:44 +0000 2012");
d.getTime(); //returns 1340220044000

//OR

Date.parse("Wed Jun 20 19:20:44 +0000 2012"); //returns 1340220044000

如果您的“人类时间”字符串采用Date构造函数理解的格式(您发布的示例是),则效果很好。


修改

意识到你可能意味着一个Unix时间戳,这是自纪元以来传递的秒数(不是像JS时间戳那样的ms)。在这种情况下,只需将JS时间戳除以1000

//if you want to truncate ms instead of rounding just use Math.floor()
Math.round(Date.parse("Wed Jun 20 19:20:44 +0000 2012") / 1000); //returns 1340220044

答案 1 :(得分:5)

理论上,Date.parse()。然而,在实践中,有数以千种不同的方式来表达日期和时间(其中最少的是不同语言的日/月的名称),更容易在其组成部分中获取日期而不是尝试阅读字符串。

答案 2 :(得分:0)

看起来您提供的日期/时间以秒为单位,而不是毫秒。因此,您需要除以1000才能获得以秒为单位的日期/时间。

//Gets date in seconds 
var d1 = Date.parse('Wed Jun 20 19:20:44 +0000 2012')/1000;
alert(d1);

示例:http://jsfiddle.net/AUt9K/

答案 3 :(得分:0)

只需添加以下内容: new Date().getTime()

这应该可以获得当前时间的时间戳。 例: var url = "http://abc.xyz.com/my-script.js?v=" + new Date().getTime();