Using javascript, How can I convert a \"human time\" string like \"Wed Jun 20 19:20:44 +0000 2012\" into a timestamp value like \"1338821992\"?
Just create a Date object from it and do .getTime() or use 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
Works great if your "human time" string is in a format that the Date constructor understands (which the example you posted is).
EDIT
Realized you may mean a Unix timestamp, which is seconds passed since the epoch (not ms like JS timestamps). In that case simply divide the JS timestamp by 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
Simply add following:
new Date().getTime()
This should get you timestamp of current time.
Example:
var url = "http://abc.xyz.com/my-script.js?v=" + new Date().getTime();
In theory, with Date.parse()
. In practice, however, with the thousands of different ways to express date and time (the least of which being the names of days/months in different languages), it's far easier to get the date in its component parts instead of trying to read a string.
Looks like the date/time you've provided is in seconds not milliseconds. So you'll need to divide by 1000 to get the date/time in seconds.
//Gets date in seconds
var d1 = Date.parse('Wed Jun 20 19:20:44 +0000 2012')/1000;
alert(d1);
Example: http://jsfiddle.net/AUt9K/