I would like to format my date as the following, f.ex.: Thursday, May 2nd 2019
.
I created the following function:
function convertDateToString(date) {
let monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
let dayNames = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
let dayIndex = date.getDate();
let monthIndex = date.getMonth();
let year = date.getFullYear();
return dayNames[dayIndex] + ', ' + monthNames[monthIndex] + ' ' + dayIndex + ' ' + year;
}
let date = new Date()
console.log(convertDateToString(date));
// wanted format: Thursday, May 2nd 2019
I would like to format my date as the following, f.ex.: Thursday, May 2nd 2019
.
I created the following function:
function convertDateToString(date) {
let monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
let dayNames = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
let dayIndex = date.getDate();
let monthIndex = date.getMonth();
let year = date.getFullYear();
return dayNames[dayIndex] + ', ' + monthNames[monthIndex] + ' ' + dayIndex + ' ' + year;
}
let date = new Date()
console.log(convertDateToString(date));
// wanted format: Thursday, May 2nd 2019
However, I am not sure how to add the ordinal number suffix to the date. I currently only get the full number and not the 1st
, 2nd
etc.
Any suggestions how to add this?`
I appreciate your replies!
Share Improve this question asked Jun 4, 2019 at 6:24 Carol.KarCarol.Kar 5,23538 gold badges148 silver badges298 bronze badges4 Answers
Reset to default 3You can create a function which takes in the day of the month, eg 2
, and returns the appropriate suffix, eg nd
(or st
in the case of 1
(or 21 or 31), rd
in the case of 3
(or 23), and th
in all other cases):
const getSuffix = (num) => {
const suffixes = {
'1': 'st',
'21': 'st',
'31': 'st',
'2': 'nd',
'22': 'nd',
'3': 'rd',
'23': 'rd'
};
return suffixes[num] || 'th';
};
function convertDateToString(date) {
let monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
let dayNames = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
let dayIndex = date.getDate();
let monthIndex = date.getMonth();
let year = date.getFullYear();
return dayNames[dayIndex] + ', ' + monthNames[monthIndex] + ' ' + dayIndex + getSuffix(dayIndex) + ' ' + year;
}
let date = new Date()
console.log(convertDateToString(date));
// wanted format: Thursday, May 2nd 2019
// Takes a number and return with ordinal suffix
const ordinal = (n) => {
const s = ['th', 'st', 'nd', 'rd'];
const m = n % 100;
return n + (s[(m - 20) % 10] || s[m] || s[0]);
};
// See for yourself
for (let i = 1; i < 50; i++) {
console.log(ordinal(i));
}
You can create an array of suffixes.
function convertDateToString(date) {
let monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
let suffix = ['st','nd','rd',...Array(13).fill('th'),'st','nd','rd',Array(7).fill('th'),'st']
let dayNames = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
let dayIndex = date.getDate();
let monthIndex = date.getMonth();
let year = date.getFullYear();
return dayNames[dayIndex] + ', ' + monthNames[monthIndex] + ' ' + dayIndex + suffix[dayIndex-1] + ' ' + year;
}
let date = new Date()
console.log(convertDateToString(date));
// wanted format: Thursday, May 2nd 2019
Worth noting that any time you deal with dates, it's worth considering including Moment.js - it's a library that makes working with dates much simpler.
You can format your display in the following manner:
function convertDateToString(date) {
return moment(date)
.format("dddd, MMMM Do YYYY")
}
let date1 = new Date("2019-05-01T10:00:00")
let date2 = new Date("2019-05-02T10:00:00")
let date3 = new Date("2019-05-03T10:00:00")
let date4 = new Date("2019-05-04T10:00:00")
console.log(convertDateToString(date1));
console.log(convertDateToString(date2));
console.log(convertDateToString(date3));
console.log(convertDateToString(date4));
// wanted format: Thursday, May 2nd 2019
<script src="https://cdnjs.cloudflare./ajax/libs/moment.js/2.24.0/moment.min.js"></script>
For more formatting options, you can check the documentation.
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745624124a4636700.html
评论列表(0条)