We now consider Moment.js to be a legacy project in maintenance mode
Please pardon this drive-by assessment of JS calendar libraries by a casual user.<p>moment.js: Mutable. Thank you, next.<p>Luxon: Takes the effort to implement `Interval`, which would be `Range&lt;DateTime&gt;` in any proper language, but somehow avoids providing separate `Date` and `Time` objects.<p>Day.js: When you kinda like moment.js, but your bundler says it&#x27;s too fat.<p>date-fns: The finest of pure, curry-able functions over the minefield that is Javascript&#x27;s `Date` object.<p>js-joda: If Javascript didn&#x27;t have classes already, this project would probably port the entire Java runtime to JS just to replicate them. Likely the most correct handling of date&#x2F;time stuff available for the browser, but damn, at what cost?<p>------------<p>Edit: this turned out way too negative, my bad. All I wanted was a library that offered:<p>0) Type definitions.<p>1) Immutable classes of `Date` (year, month, day), `Time` (hour, minute, etc), `DateTime` (the prior two combined), `Instant` (for a certain moment on the global timeline), and `Duration`.<p>1b) `DateTime` should probably be split into two separate things, one of which is aware of time zones.<p>2) All the obvious date arithmetic functions - duration between dates, adding&#x2F;subtracting durations, etc etc.