使用javascript,如何将“人类时间”字符串(例如“Wed Jun 20 19:20:44 +0000 2012”)转换为时间戳值“1338821992”?
答案 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);
答案 3 :(得分:0)
只需添加以下内容:
new Date().getTime()
这应该可以获得当前时间的时间戳。
例:
var url = "http://abc.xyz.com/my-script.js?v=" + new Date().getTime();