Javascript equivalent of php's strtotime()?

后端 未结 8 1200
無奈伤痛
無奈伤痛 2020-11-27 19:33

In PHP, you can easily convert an English textual datetime description into a proper date with strtotime().

Is there anything similar in Javascript?

相关标签:
8条回答
  • 2020-11-27 19:42

    Check out this implementation of PHP's strtotime() in JavaScript!

    I found that it works identically to PHP for everything that I threw at it.

    Update: this function as per version 1.0.2 can't handle this case: '2007:07:20 20:52:45' (Note the : separator for year and month)

    Update 2018:

    This is now available as an npm module! Simply npm install locutus and then in your source:

    var strtotime = require('locutus/php/datetime/strtotime');
    
    0 讨论(0)
  • 2020-11-27 19:43

    There are few modules that provides similar behavior, but not exactly like PHP's strtotime. Among few alternatives I found date-util yields the best results.

    0 讨论(0)
  • 2020-11-27 19:44

    Maybe you can exploit a sample function like :

    function strtotime(date, addTime){
      let generatedTime=date.getTime();
      if(addTime.seconds) generatedTime+=1000*addTime.seconds; //check for additional seconds 
      if(addTime.minutes) generatedTime+=1000*60*addTime.minutes;//check for additional minutes 
      if(addTime.hours) generatedTime+=1000*60*60*addTime.hours;//check for additional hours 
      return new Date(generatedTime);
    }
    
    let futureDate = strtotime(new Date(), {
        hours: 1, //Adding one hour
        minutes: 45 //Adding fourty five minutes
      });
    document.body.innerHTML = futureDate;

    `

    0 讨论(0)
  • 2020-11-27 19:49

    var strdate = new Date('Tue Feb 07 2017 12:51:48 GMT+0200 (Türkiye Standart Saati)');
    var date = moment(strdate).format('DD.MM.YYYY');
    $("#result").text(date); //07.02.2017
    <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
    
    <div id="result"></div>

    0 讨论(0)
  • 2020-11-27 19:58

    I found this article and tried the tutorial. Basically, you can use the date constructor to parse a date, then write get the seconds from the getTime() method

    var d=new Date("October 13, 1975 11:13:00");
    document.write(d.getTime() + " milliseconds since 1970/01/01");
    

    Does this work?

    0 讨论(0)
  • 2020-11-27 19:59

    Browser support for parsing strings is inconsistent. Because there is no specification on which formats should be supported, what works in some browsers will not work in other browsers.

    Try Moment.js - it provides cross-browser functionality for parsing dates:

    var timestamp = moment("2013-02-08 09:30:26.123");
    console.log(timestamp.milliseconds()); // return timestamp in milliseconds
    console.log(timestamp.second()); // return timestamp in seconds
    
    0 讨论(0)
提交回复
热议问题