Here are some easy-to-understand methods for converting strings to date objects in the JavaScript Programming language.
Looking to compare dates in JavaScript? Find out how here.
The Hard Way – Using Vanilla JavaScript
JavaScript contains built-in functions for parsing a date from a string – but it’s severely limited. So here it is in action:
var myString = '01 Jan 1970 00:00:00 GMT'; var myDate = new Date(Date.parse(myString));
What’s happening here? A string is defined containing a date. A new Date object is then defined using the result of the Date.parse function, which takes the date string and converts it to Unix time.
It’s a bit unwieldy, and worst of all, it only works when the date string adheres to a specific format.
More information about this method and the supported date formats can be found in the Mozilla developer documentation, but there is a better way.
The Smart Way – Using Moment.js
Moment.js is the ultimate tool for dealing with dates and times in JavaScript. It can convert and parse dates from strings, shift timezones, calculate time differences, add and subtract to times – it does everything you would need to do with times and dates and is easy to use. Get it at:
Moment.js is thoroughly documented – I won’t re-interpret any of it here. It’s well-written, easy to understand, and kept up-to-date with the latest package features:
I’ll provide a quick example on parsing a date from a string, as that’s why we’re here – but the complete documentation contains a full list of available tools for parsing dates:
https://momentjs.com/docs/#/parsing/
Example
First, you’ll need to include Moment.js in your HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
Now Moment.js is ready to go – here’s the JavaScript to convert a string to a date:
var myString = '12/11/2021'; moment(myString, 'DD/MM/YYYY');
It’s that easy – simply call moment() and pass the string and format your date is in, and it will do the rest.