使用javascript,如何将“Wed Jun 20 19:20:44 +0000 2012”之类的“人类时间”字符串转换为“1338821992”之类的时间戳值?
问问题
34609 次
4 回答
24
只需从中创建一个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 时间戳那样的毫秒)。在这种情况下,只需将 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
于 2012-06-23T20:11:40.570 回答
5
理论上,与Date.parse()
. 然而,在实践中,使用数千种不同的方式来表示日期和时间(其中最少的是不同语言中的天/月名称),在其组成部分中获取日期要容易得多,而不是尝试阅读细绳。
于 2012-06-23T20:12:10.713 回答
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/
于 2012-06-23T20:15:58.143 回答
0
只需添加以下内容:
new Date().getTime()
这应该为您提供当前时间的时间戳。例子:
var url = "http://abc.xyz.com/my-script.js?v=" + new Date().getTime();
于 2016-07-28T13:09:26.133 回答