我想用天、小时、分钟、秒、毫秒、纳秒来计算日期差异。我该怎么做呢?


当前回答

我想这个就可以了。

let today = new Date();
let form_date=new Date('2019-10-23')
let difference=form_date>today ? form_date-today : today-form_date
let diff_days=Math.floor(difference/(1000*3600*24))

其他回答

var d1=new Date(2011,0,1); // jan,1 2011
var d2=new Date(); // now

var diff=d2-d1,sign=diff<0?-1:1,milliseconds,seconds,minutes,hours,days;
diff/=sign; // or diff=Math.abs(diff);
diff=(diff-(milliseconds=diff%1000))/1000;
diff=(diff-(seconds=diff%60))/60;
diff=(diff-(minutes=diff%60))/60;
days=(diff-(hours=diff%24))/24;

console.info(sign===1?"Elapsed: ":"Remains: ",
             days+" days, ",
             hours+" hours, ",
             minutes+" minutes, ",
             seconds+" seconds, ",
             milliseconds+" milliseconds.");

可以是有用的:

const date_diff = (date1, date2) => Math.ceil(Math.abs(date1 - date2)/24 * 60 * 60 * 1000)

or

const date_diff = (date1, date2) => Math.ceil(Math.abs(date1 - date2)/86400000)

24 * 60 * 60 * 1000在一天内(天*分*秒*毫秒)= 86400000毫秒

谢谢你!

            // the idea is to get time left for new year.
           // Not considering milliseconds as of now, but that 
           //  can be done
           
            var newYear = '1 Jan 2023';
            const secondsInAMin = 60;
            const secondsInAnHour = 60 * secondsInAMin;
            const secondsInADay = 24 * secondsInAnHour;

            function DateDiffJs() {
                var newYearDate = new Date(newYear);
                var currDate = new Date();

                var remainingSecondsInDateDiff = (newYearDate - currDate) / 1000;
                var days = Math.floor(remainingSecondsInDateDiff / secondsInADay);

                var remainingSecondsAfterDays = remainingSecondsInDateDiff - (days * secondsInADay);
                var hours = Math.floor(remainingSecondsAfterDays / secondsInAnHour);

                var remainingSecondsAfterhours = remainingSecondsAfterDays - (hours * secondsInAnHour);
                var mins = Math.floor(remainingSecondsAfterhours / secondsInAMin);

                var seconds = Math.floor(remainingSecondsAfterhours - (mins * secondsInAMin));


                console.log(`days :: ${days}`)
                console.log(`hours :: ${hours}`)
                console.log(`mins :: ${mins}`)
                console.log(`seconds :: ${seconds}`)

            }

            DateDiffJs();

我想这个就可以了。

let today = new Date();
let form_date=new Date('2019-10-23')
let difference=form_date>today ? form_date-today : today-form_date
let diff_days=Math.floor(difference/(1000*3600*24))
var date1 = new Date("06/30/2019");
var date2 = new Date("07/30/2019");
  
// To calculate the time difference of two dates
var Difference_In_Time = date2.getTime() - date1.getTime();
  
// To calculate the no. of days between two dates
var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);
  
//To display the final no. of days (result)
document.write("Total number of days between dates  <br>"
               + date1 + "<br> and <br>" 
               + date2 + " is: <br> " 
               + Difference_In_Days);