0

I have a string that looks like '1/11/2018 12:00:00 AM' and I want to reformat it to dd-mm-yyyy. Keep in mind that the month can be double digit sometimes.

Sebastian
  • 45
  • 1
  • 1
  • 11

3 Answers3

0

You can do somethink like this :

 var d = new Date();
    var curr_date = d.getDate();
    var curr_month = d.getMonth() + 1; //Months are zero based
    var curr_year = d.getFullYear();
    console.log(curr_date + "-" + curr_month + "-" + curr_year);

However best way is with Moment.js,where you can Parse, Validate, Manipulate, and Display dates in JavaScript.

example:

  var date= moment("06/06/2015 11:11:11").format('DD-MMM-YYYY');
Léo R.
  • 3,041
  • 1
  • 8
  • 21
0

You can use libraries like moment.js. Assuming either you do not want to use any external library or can not use it, then you can use following custom method:

function formatDate(dateStr) {
    let date = new Date(dateStr);
    let day = date.getDate();
    let month = date.getMonth() + 1;
    let year = date.getFullYear();

    return day + '-' + month + '-' + year;
}

console.log(formatDate('1/11/2018 12:00:00 AM')); 
GauravLuthra
  • 992
  • 8
  • 8
0
function convertDate(oldDate) {
  var myDate = new Date(Date.parse(oldDate)); //String -> Timestamp -> Date object
  var day = myDate.getDate(); //get day
  var month = myDate.getMonth() + 1; //get month
  var year = myDate.getFullYear(); //get Year (4 digits)
  return pad(day,2) + "-" + pad(month, 2) + "-" + year; //pad is a function for adding leading zeros
}

function pad(num, size) { //function for adding leading zeros
  var s = num + "";
  while (s.length < size) s = "0" + s;
  return s;
}

convertDate("1/11/2018 12:00:00 AM"); //11-01-2018

Demo here

alexP
  • 3,427
  • 5
  • 22
  • 34