Cum să convertești un șir dd/mm/yyyy într-un obiect Date în JavaScript?


Cum să convertești o dată în format 23/10/2015 într-un format Date în JavaScript:

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

Răspuns #1

Formatul ZZ/LL/AAAA

Dacă aveți formatul MM/DD/YYYY, care este implicit pentru JavaScript, puteți pur și simplu să treceți șirul dvs. la constructorul Date(string). Acesta îl va analiza pentru dvs.

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

var dateObject = new Date(dateString);

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

Format DD/MM/AAAA - manual

Dacă lucrezi cu acest format, atunci poți împărți data pentru a obține ziua, luna și anul separat și apoi să le folosești într-un alt 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();

Pentru mai multe informații, puteți citi articolul despre Date pe Mozilla Developer Network.

ZZ/LL/AAAA - utilizând biblioteca moment.js

Alternativ, poți folosi biblioteca moment.js, care este probabil cea mai populară bibliotecă pentru a analiza și a opera cu data și ora în 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>

În toate cele trei exemple, variabila dateObject conține un obiect de tip Date, care reprezintă un moment în timp și poate fi ulterior convertit în orice format de șir de caractere.

Răspunsul #2

Iată unul pe care l-am pregătit mai devreme...

  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;     
  }