13

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"?

HandiworkNYC.com
  • 10,914
  • 25
  • 92
  • 154

4 Answers4

25

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
Chad
  • 19,219
  • 4
  • 50
  • 73
5

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.

Niet the Dark Absol
  • 320,036
  • 81
  • 464
  • 592
1

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/

Brandon Boone
  • 16,281
  • 4
  • 73
  • 100
1

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();

rustygb
  • 306
  • 1
  • 5
  • 13