Work with a time span in Javascript

后端 未结 7 746
感动是毒
感动是毒 2020-11-30 05:53

Using Date.js already, but can also use another library if necessary.

Not sure what is the best way to work with time deltas. Specifically, I want to display the tim

7条回答
  •  隐瞒了意图╮
    2020-11-30 06:31

    Sounds like you need moment.js

    e.g.

    moment().subtract('days', 6).calendar();
    

    => last Sunday at 8:23 PM

    moment().startOf('hour').fromNow();
    

    => 26 minutes ago

    Edit:

    Pure JS date diff calculation:

    var date1 = new Date("7/Nov/2012 20:30:00");
    var date2 = new Date("20/Nov/2012 19:15:00");
    
    var diff = date2.getTime() - date1.getTime();
    
    var days = Math.floor(diff / (1000 * 60 * 60 * 24));
    diff -=  days * (1000 * 60 * 60 * 24);
    
    var hours = Math.floor(diff / (1000 * 60 * 60));
    diff -= hours * (1000 * 60 * 60);
    
    var mins = Math.floor(diff / (1000 * 60));
    diff -= mins * (1000 * 60);
    
    var seconds = Math.floor(diff / (1000));
    diff -= seconds * (1000);
    
    document.write(days + " days, " + hours + " hours, " + mins + " minutes, " + seconds + " seconds");

提交回复
热议问题