I am trying to pass an array to a function and convert the numeric date.
E.g.: 2020-02-29 converted to 29th February 2020 (Saturday).
My code is below. When I am trying to push the converted date to array, the previous value get overwritten. I have gone through many articles on StackOverflow, but didn't find any best solution for it. I have created a new local array before pushing the same one (the same reference) each time, but the problem still persist.
Could you suggest me a better solution for my problem statement OR should I do some modification in the existing code?
Array data as input:
var data = ['2020-02-29', '2020-03-01', '2020-03-02'];
Start of a function:
function getFullName(data) {
for(var i=0;i<data.length;i++){
var d = new Date(data[i]);
var date = d.getDate();
var month = d.getMonth();
var year = d.getFullYear();
var dayName = d.toLocaleDateString('en-US', { weekday: 'long' });
function ordinal_suffix_of(i) {
var j = (i % 10);
k = (i % 100);
if (j == 1 && k != 11) {
return i + "st";
}
if (j == 2 && k != 12) {
return i + "nd";
}
if (j == 3 && k != 13) {
return i + "rd";
}
return i + "th";
}
var pdate = ordinal_suffix_of(date);
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var result = [];
var pmonth = monthNames[month];
var response = pdate + ' ' + pmonth + ' ' + year + ' (' + dayName + ')';
result.push(response);
console.log(result);
}
return result;
};
Calling function:
getFullName(data);