Checking if two Dates have the same date info

后端 未结 8 693
清歌不尽
清歌不尽 2020-11-27 05:40

How can I check if two different date objects have the same date information(having same day, month, year ...)? I have tried "==", "===" and .equals but

8条回答
  •  星月不相逢
    2020-11-27 06:32

    A simple single line alternative for determining if two dates are equal, ignoring the time part:

    function isSameDate(a, b) {
        return Math.abs(a - b) < (1000 * 3600 * 24) && a.getDay() === b.getDay();
    }
    

    It determines if dates a and b differ no more than one day and share the same day of the week.

    function isSameDate(a, b) {
        return Math.abs(a - b) < (1000 * 3600 * 24) && a.getDay() === b.getDay();
    }
    
    console.log(isSameDate(new Date(2017, 7, 21), new Date(2017, 7, 21))); //exact same date => true
    console.log(isSameDate(new Date(2017, 7, 21, 23, 59, 59), new Date(2017, 7, 21))); //furthest same dates => true
    console.log(isSameDate(new Date(2017, 7, 20, 23, 59, 59), new Date(2017, 7, 21))); //nearest different dates => false
    console.log(isSameDate(new Date(2016, 7, 21), new Date(2017, 7, 21))); //different year => false
    console.log(isSameDate(new Date(2017, 8, 21), new Date(2017, 7, 21))); //different month => false

提交回复
热议问题