Вот моя версия, вы можете использовать функцию formatToParts () , чтобы получить их по частям, предполагая, что вы будете использовать один и тот же формат каждый раз, а затем получать их по массиву объектов, чтобы вы могли создать ваш собственный формат, позволяющий вам добавить собственный текст. Хотя было бы намного проще и эффективнее, если бы вы использовали какой-нибудь другой форматер даты.
let checkoutDate = new Date();
var th = 'th';
var formatter = new Intl.DateTimeFormat('en-us', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric',
fractionalSecondDigits: 3,
timeZone: 'UTC'
});
var formatted = formatter.formatToParts(checkoutDate);
var day = formatted[4].value;
var wr = checker(day);
console.log(wr);
console.log(formatted[0].value+ ',', day +wr, formatted[2].value, formatted[6].value);
function checker(x){
if (x > 3 && x < 21) return 'th';
switch (x % 10) {
case 1: return "st";
case 2: return "nd";
case 3: return "rd";
default: return "th";
}
}
//output Friday, 13th March 2020