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
-
use moment js for achieving this – Viplock Jun 12 '17 at 06:58
-
why dont you check https://stackoverflow.com/a/25159403/4244010 – Srishin Kp Jun 12 '17 at 06:59
-
... or https://stackoverflow.com/q/1056728/1169519 – Teemu Jun 12 '17 at 07:00
-
1Check this - https://momentjs.com/docs/#/displaying/ – DASH Jun 12 '17 at 07:00
7 Answers
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

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

- 3,752
- 1
- 19
- 33
-
37Don't offer plugins as the ONLY solution especially when OP didn't ask for it. – Wancieho May 19 '19 at 11:48
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')

- 568
- 2
- 9
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:

- 342
- 5
- 16
-
var month = date.getMonth()+1; Month starts counting at 0, so January is 0, February is 1... – lukas_o May 15 '18 at 11:16
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}`)

- 8,062
- 2
- 19
- 29
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"));

- 977
- 14
- 26
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")

- 3,259
- 1
- 23
- 32