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"?
-
Can you elaborate some more what do you want to do? how do you get this string? – gdoron Jun 23 '12 at 20:11
4 Answers
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

- 19,219
- 4
- 50
- 73
-
`NaN` on both counts. This is because of locale, and is exactly why parsing human strings is such a problem. – Niet the Dark Absol Jun 23 '12 at 20:53
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.

- 320,036
- 81
- 464
- 592
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/

- 16,281
- 4
- 73
- 100
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();

- 306
- 1
- 5
- 13