Javascript Converting human time to timestamp

前端 未结 4 588
面向向阳花
面向向阳花 2020-12-30 07:35

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

相关标签:
4条回答
  • 2020-12-30 07:51

    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
    
    0 讨论(0)
  • 2020-12-30 07:54

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

    0 讨论(0)
  • 2020-12-30 07:59

    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.

    0 讨论(0)
  • 2020-12-30 08:02

    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/

    0 讨论(0)
提交回复
热议问题