skip to Main Content

How can I convert this date: 29/12/2022 where:
29 is day,
12 is month,
2022 is year,
to ISO string.

I tried this:

var dateStr = "29/12/2022";
var parts = dateStr.split("/")
var myDate = new Date(parseInt(parts[2]), parseInt(parts[1]) - 1, parseInt(parts[0]));
console.log(myDate.toISOString());
// 2024-05-11T22:00:00.000Z this is wrong

I was expecting different result.

3

Answers


  1. There is no need to parseInt and to remove 1 to the month.

    var dateStr = "29/12/2022";
    var parts = dateStr.split("/")
    var myDate = new Date(`${parts[2]}-${parts[1]}-${parts[0]}`);
    console.log(myDate.toISOString());
    Login or Signup to reply.
  2. In my code usually I do something like this:

    const dateStr = "29/12/2022";
    const parts = dateStr.split("/");
    const date = new Date(0); // It will set hours, minutes, and seconds to 0
    date.setDate(parts[0]);
    date.setMonth(parts[1]-1);
    date.setFullYear(parts[2]);
    console.log(date.toISOString());
    Login or Signup to reply.
  3. It may not be the most optimal way but you could do it this way as long as the month when it is a single digit is sent with zero at the beginning type: 01 -> January

    let date = '29/12/2022';
    let dateFormat = date[3]+date[4]+"-"+date[0]+date[1]+"- 
    "+date[6]+date[7]+date[8]+date[9]
    // 12-29-2022
    let mydate = new Date(dateFormat)
    // Thu Dec 29 2022 00:00:00 GMT-0500 
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search