My reason for doing so is that dates stored as date objects in whatever database tend to be written in a specific format, which may greatly differ from what you need to present to the user on the front-end. I also think it’s especially helpful if your application is pulling info from different types of data stores. A good example would be the difference between a MongoDB and SQL date object.
However, I don’t know whether this is recommended practice. Should I keep storing dates as longs (time in milliseconds) or as date objects?
I can’t speak for it in relation to MongoDB, but in SQL database, no, it’s not best practice. That doesn’t mean there might not be the occasional use case, but “best practice,” no.
Store them as dates, retrieve them as dates. Your best bet is to set up your database to store them as UTC (loosely, “GMT”) so that the data is portable and you can use different local times as appropriate (for instance, if the database is used by geographically diverse users), and handle any conversions from UTC to local time in the application layer (e.g., via
Calendaror a third-party date library).Storing dates as numbers means your database is hard to report against, run ad-hoc queries against, etc. I made that mistake once, it’s not one I’ll repeat without a really good reason. 🙂