15

Hello every i have date field of type string with iso format like this: const date = "2017-06-10T16:08:00: i want somehow to edit the string in the following format like this: 10-06-2017 but i'm struggling in achieving this. I cut the substring after the "T" character

4

7 Answers 7

21

It can be achieved without moment.js, but I suggest you use it

var date = new Date("2017-06-10T16:08:00");

var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();

if (day < 10) {
  day = '0' + day;
}
if (month < 10) {
  month = '0' + month;
}

var formattedDate = day + '-' + month + '-' + year
Sign up to request clarification or add additional context in comments.

Comments

19

Use Moment.js and the .format function.

moment('2017-06-10T16:08:00').format('MM/DD/YYYY');

Will output

06/10/2017

Beside the format function Moment.js will enrich you will alot more useful functions.

1 Comment

Don't offer plugins as the ONLY solution especially when OP didn't ask for it.
5

If the date string is always in ISO format, you can also use regex to reformat without other library:

date.replace(/(\d{4})\-(\d{2})\-(\d{2}).*/, '$3-$2-$1')

Comments

1

You can use the JavaScript date() built in function to get parts of the date/time you want. For example to display the time is 10:30:

<script>
var date = new Date();
 var min = date.getMinutes();
  var hour = date.getHour();
   document.write(hour+":"+min);
   </script>

To get the year, month, date, day of week use

  • getFullYear();

  • getMonth();

  • getDate();

  • getDay();

To get the date you posted:

1 Comment

var month = date.getMonth()+1; Month starts counting at 0, so January is 0, February is 1...
1

If you're looking to do this in vanilla javascript, @Ivan Mladenov's answer is great and can be consolidated slightly using padStart.

const date = new Date()
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')

console.log(`${day}-${month}-${year}`)

Comments

0

Using Date.toJSON()

function formatDate(userDate) {
  // format from M/D/YYYY to YYYYMMDD
  return (new Date(userDate).toJSON().slice(0,10).split('-').reverse().join('-'));
}

console.log(formatDate("2017-06-10T16:08:00"));

Comments

-1

I would like to suggest to use moment js find it - http://momentjs.com/docs/

and use it like

    moment(date.toString()).format("MM/DD/YYYY")

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.