Вы говорите, что ваш формат даты - мм / дд / гггг, но ваш код выглядит как гггг-мм-дд.
При создании даты вы не вычитаете 1 из календарного месяца:
var d = new Date(divideddate[0], divideddate[1], divideddate[2]);
должно быть:
var d = new Date(divideddate[0], divideddate[1] - 1, divideddate[2]);
Однако вам не нужно создавать Date, проще и меньше кода просто использовать значения в строке:
// Reformat mm/dd/yyyy to d mmmm yyyy
function formatDate(thedate) {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var b = thedate.split(/\D/);
return +b[1] + ' ' + monthNames[b[0]-1] + ' ' + b[2];
}
console.log(formatDate('5/28/2019'))
Обратите внимание, что массив месяцев устанавливает январь в качестве индекса 0, февраль в качестве индекса 2 и т. Д., Поэтому можно либо вычесть 1 из номера месяца в строке, либо исключитьпервый элемент в массиве.Я сделал первое.