Borislav Hadzhiev
Sat Jan 22 2022·3 min read
Photo by Octavian Rosca
Use the Date()
constructor to convert a string to a Date
object, e.g.
const date = new Date('2022-09-24')
. The Date()
constructor takes a valid
date string as a parameter and returns a Date
object.
const str = '2022-09-24'; const date = new Date(str); console.log(date); // 👉️ Sat Sep 24 2022
We used the
Date()
constructor to convert a string to a Date
object.
Date
object, you need to format the string correctly before passing it to the Date()
constructor.If you have difficulties creating a valid Date
object, you can pass 2 types
of parameters to the Date()
constructor:
YYYY-MM-DDTHH:mm:ss.sssZ
, or just
YYYY-MM-DD
, if you only have a date without time.year
, month
(0 =
January to 11 = December), day of the month
, hours
, minutes
and
seconds
.Here is an example that splits a string formatted as MM/DD/YYYY
(could be any
other format) and passes the values as parameters to the Date()
constructor to
create a Date
object.
const str = '09/24/2022'; const [month, day, year] = str.split('/'); console.log(month); // 👉️ 09 console.log(day); // 👉️ 24 console.log(year); // 👉️ 2022 const date = new Date(+year, +month - 1, +day); console.log(date); // 👉️ Sat Sep 24 2022
We split the date
on each forward slash to get the values for the month, day
and year.
Notice that we subtracted 1
from the month when passing it to the Date()
constructor.
Date
constructor expects a zero-based value, where January = 0, February = 1, March = 2, etc.Here is another example, which creates a Date
that also contains the hours,
minutes and seconds.
const str = '09/24/2022 07:30:14'; const [dateValues, timeValues] = str.split(' '); console.log(dateValues); // 👉️ "09/24/2022" console.log(timeValues); // 👉️ "07:30:14" const [month, day, year] = dateValues.split('/'); const [hours, minutes, seconds] = timeValues.split(':'); const date = new Date(+year, +month - 1, +day, +hours, +minutes, +seconds); // 👇️️ Sat Sep 24 2022 07:30:14 console.log(date);
The first thing we did was split the date and time string on the space, so we can get the date and time components as separate strings.
We also split the time string on each colon and assigned the hours, minutes and seconds to variables.
We passed all of the parameters to the Date()
constructor to create a Date
object.
If you need to store a date string in your database, it's best to store the ISO 8601 representation of the date.
You can get the ISO formatted date by calling the toISOString()
method.
const str = '09/24/2022 07:30:14'; const [dateValues, timeValues] = str.split(' '); console.log(dateValues); // 👉️ "09/24/2022" console.log(timeValues); // 👉️ "07:30:14" const [month, day, year] = dateValues.split('/'); const [hours, minutes, seconds] = timeValues.split(':'); const date = new Date(+year, month - 1, +day, +hours, +minutes, +seconds); // 👇️️ Sat Sep 24 2022 07:30:14 console.log(date); // 👇️ "2022-09-24T04:30:14.000Z" (ISO 8601) console.log(date.toISOString());
The toISOString method returns a string of the date in the ISO 8601 format according to universal time.
The ISO string can easily be passed to the Date()
constructor to create a new
Date
object.