mattphillips / deep-object-diff

Deep diffs two objects, including nested structures of arrays and objects, and returns the difference. ❄️
https://www.npmjs.com/package/deep-object-diff
MIT License
1.05k stars 89 forks source link

Better support for dates #11

Closed KamalAman closed 7 years ago

KamalAman commented 7 years ago

When you check if two dates are equal to each other you run the following code:

if ((0, _utils.isDate)(l) || (0, _utils.isDate)(r)) {
   if (l.toString() == r.toString()) return {};
   return r;
}

The issue here is that new Date(1).toString() === new Date(2).toString() //true which is obviously false.

The issue here is that toString formats the date object into a human readable format which does not take milliseconds into account Mon Sep 28 1998 14:36:22 GMT-0700 (PDT)

What you should be using instead is .valueOf() which converts the date into an epoch time. This is also much more preferment than toStirng: roughly 25x faster in node 7.

mattphillips commented 7 years ago

@KamalAman just published v1.0.4 with your fix 🎉 . Thanks again for the contribution :1st_place_medal: