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

RamAlx
  • 6,976
  • 23
  • 58
  • 106

7 Answers7

20

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
Ivan Mladenov
  • 1,787
  • 12
  • 16
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.

daan.desmedt
  • 3,752
  • 1
  • 19
  • 33
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')
micebrain
  • 568
  • 2
  • 9
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:

The Nerdy Geek
  • 342
  • 5
  • 16
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}`)
Greg Venech
  • 8,062
  • 2
  • 19
  • 29
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"));
monikapatelIT
  • 977
  • 14
  • 26
-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")
Viplock
  • 3,259
  • 1
  • 23
  • 32