With the function-per-file style, you can pick just what you need and stop bloating your project with useless functionality. It works well with modern module bundlers such as webpack, Browserify, and Rollup and also supports tree-shaking.
In addition to tiny size, date-fns is fast. You can be sure that your users will have the best user experience.
date-fns respects time zones & DST. It follows semantic versioning so, always backward compatible. Each build CI checks more than 650 000 examples in about 400 time zones.
The best API is an API that doesn't exist. With date-fns you always have one function that does one thing. The API is unambiguous, and there is always a single approach to a problem.