Date.monthNames()
Compute the array of month name
by polinux
HTML
<div id="month-names"></div>
<div id="month-names-bg"></div>
JavaScript
Date.toLocaleDateStringSupportsLocales = function () {
try {
new Date().toLocaleDateString("i");
} catch (e) {
return e.name === "RangeError";
}
return false;
}
Date.monthNames = function( locales, optMonth ) {
// ---------------
var arrMonth = [],
lang = Date.toLocaleDateStringSupportsLocales() ? (locales || window.navigator.language) : window.navigator.language,
indexMonth = 2; // Month position in the String returned to toLocaleString
switch( (lang.split('-'))[0] ) {
case 'bg' : ;
case 'en' : ;
case 'ko' : indexMonth = 1;
break ;
case 'es' : ;
case 'pt' : ;
case 'sv' : indexMonth = 3;
break ;
default : ;
}
for( var dateRef = new Date(2001, 0, 10), m = 0, arr = [] ; m < 12 ; m++ ) {
dateRef.setMonth(m);
arr = dateRef.toLocaleDateString( lang, { month: optMonth || "long" } ).split(' ');
arrMonth.push( arr[ arr.length > 1 ? indexMonth : 0 ].replace(/,$/g, "") );
}
return arrMonth;
}
document.getElementById('month-names').textContent = Date.monthNames( ).toString();
document.getElementById('month-names-bg').textContent = Date.monthNames('bg', 'short' ).toString();