How to convert dd/mm/yyyy string into JavaScript Date object?

JavascriptDate

Javascript Problem Overview


How to convert a date in format 23/10/2015 into a JavaScript Date format:

Fri Oct 23 2015 15:24:53 GMT+0530 (India Standard Time)

Javascript Solutions


Solution 1 - Javascript

MM/DD/YYYY format

If you have the MM/DD/YYYY format which is default for JavaScript, you can simply pass your string to Date(string) constructor. It will parse it for you.

var dateString = "10/23/2015"; // Oct 23

var dateObject = new Date(dateString);

document.body.innerHTML = dateObject.toString();

DD/MM/YYYY format - manually

If you work with this format, then you can split the date in order to get day, month and year separately and then use it in another constructor - Date(year, month, day):

var dateString = "23/10/2015"; // Oct 23

var dateParts = dateString.split("/");

// month is 0-based, that's why we need dataParts[1] - 1
var dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]); 

document.body.innerHTML = dateObject.toString();

For more information, you can read article about Date at Mozilla Developer Network.

DD/MM/YYYY - using moment.js library

Alternatively, you can use moment.js library, which is probably the most popular library to parse and operate with date and time in JavaScript:

var dateString = "23/10/2015"; // Oct 23

var dateMomentObject = moment(dateString, "DD/MM/YYYY"); // 1st argument - string, 2nd argument - format
var dateObject = dateMomentObject.toDate(); // convert moment.js object to Date object

document.body.innerHTML = dateObject.toString();

<script src="https://momentjs.com/downloads/moment.min.js"></script>

In all three examples dateObject variable contains an object of type Date, which represents a moment in time and can be further converted to any string format.

Solution 2 - Javascript

Here's one I prepared earlier...

  convertToDate(dateString) {
      //  Convert a "dd/MM/yyyy" string into a Date object
      let d = dateString.split("/");
      let dat = new Date(d[2] + '/' + d[1] + '/' + d[0]);
      return dat;     
  }

Solution 3 - Javascript

var dateString = "23/10/2015"; // Oct 23
var newData = dateString.replace(/(\d+[/])(\d+[/])/, '$2$1');
var data = new Date(newData);

document.body.innerHTML = date.toString();ere

Solution 4 - Javascript

While most responses were tied to splitting strings or using native date methods, the two closely-related ones using RegEx (i.e., answer by [drgol] and comment by [Tomás Hugo Almeida]) are both instructive about the use of capturing groups. Their succinctness also helps illustrate the value of capturing and distinguishing that from matching - two related concepts that can confuse new RegEx users. This code block consolidates their 2 answers but see originals above: const origDate = '23/07/2020'; const newDate = origDate.replace(/(\d+[/])(\d+[/])/, '$2$1'); // newDate = '07/23/2020';

Solution 5 - Javascript

I found the default JS date formatting didn't work.

So I used toLocaleString with options

const event = new Date();
const options = { dateStyle: 'short' };
const date = event.toLocaleString('en', options);

to get: DD/MM/YYYY format

See docs for more formatting options: https://www.w3schools.com/jsref/jsref_tolocalestring.asp

Solution 6 - Javascript

Here is a way to transform a date string with a time of day to a date object. For example to convert "20/10/2020 18:11:25" ("DD/MM/YYYY HH:MI:SS" format) to a date object

    function newUYDate(pDate) {
      let dd = pDate.split("/")[0].padStart(2, "0");
      let mm = pDate.split("/")[1].padStart(2, "0");
      let yyyy = pDate.split("/")[2].split(" ")[0];
      let hh = pDate.split("/")[2].split(" ")[1].split(":")[0].padStart(2, "0");
      let mi = pDate.split("/")[2].split(" ")[1].split(":")[1].padStart(2, "0");
      let secs = pDate.split("/")[2].split(" ")[1].split(":")[2].padStart(2, "0");
    
      mm = (parseInt(mm) - 1).toString(); // January is 0
    
      return new Date(yyyy, mm, dd, hh, mi, secs);
    }

Solution 7 - Javascript

you can use this short function

// dateString: "15/06/2021"
  

const stringToDate = (dateString) => {
  const [day, month, year] = dateString.split('/');
  return new Date([month, day, year].join('/'));
};

document.body.innerHTML = stringToDate("15/06/2021").toString();

Solution 8 - Javascript

var date = new Date("enter your  date");//2018-01-17 14:58:29.013

Just one line is enough no need to do any kind of split, join, etc.:

$scope.ssdate=date.toLocaleDateString();//  mm/dd/yyyy format

Solution 9 - Javascript

<!DOCTYPE html>

<script>

dateString = "23/10/2015";    //23 Oct 2015

d = dateString.split("/");

x = d[1] + "/" + d[0] + "/" + d[2];    //"10/23/2015"
y = d[2] + "/" + d[1] + "/" + d[0];    //"2015/10/23"

alert(
new Date(x) + "\n\n" +
new Date(y) + "\n\n" +
new Date(dateString) + "\n" +
"");

</script>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRaja ManickamView Question on Stackoverflow
Solution 1 - JavascriptYeldar KurmangaliyevView Answer on Stackoverflow
Solution 2 - JavascriptMike GledhillView Answer on Stackoverflow
Solution 3 - JavascriptdrgolView Answer on Stackoverflow
Solution 4 - JavascriptGlenn GutmacherView Answer on Stackoverflow
Solution 5 - JavascriptOBEYView Answer on Stackoverflow
Solution 6 - JavascriptFranco FontanaView Answer on Stackoverflow
Solution 7 - JavascriptA. HamdyView Answer on Stackoverflow
Solution 8 - JavascriptSanjeev KumarView Answer on Stackoverflow
Solution 9 - JavascriptUserView Answer on Stackoverflow