Return dd-mm-yyyy from Date() object

J.arc picture J.arc · Mar 7, 2016 · Viewed 8.5k times · Source

Desired return value should be a string formatted as dd-mm-yyyy.

Im trying to give a format date dd-mm-yyyy to ISOString and adding GMT but the code gives me this format. How can i do?

new Date().toISOString()
    .replace(/T/, ' ').      // replace T with a space
    .replace(/\..+/, '');     // delete the dot and everything after

'2012-11-04 14:55:45'

Answer

James Donnelly picture James Donnelly · Mar 8, 2016

im looking for 04-11-2012 date format

Using today's date (which as an ISO string is currently "2016-03-08T13:51:13.382Z"), you can do this:

new Date().toISOString().replace(/T.*/,'').split('-').reverse().join('-')

The output of this is:

-> "08-03-2016"

This:

  1. Grabs the date.
  2. Converts it to an ISO string.
  3. Replaces the 'T' and everything after it.
  4. Converts it into an array by splitting on any hyphen ('-') character. (["2016", "03", "08"])
  5. Reverses the order of the array. (["08", "03", "2016"])
  6. Joins the array back as a string, separating each value with a hyphen character.

Here is a demo using your date (2012-11-04T14:55:45.000Z) as input:

var input = "2012-11-04T14:55:45.000Z",
    output;

output = new Date(input).toISOString().replace(/T.*/,'').split('-').reverse().join('-');

document.getElementById('input').innerHTML = input;
document.getElementById('output').innerHTML = output;
<p><strong>Input:</strong> <span id=input></span></p>
<p><strong>Output:</strong> <span id=output></span></p>