Get localized month name using native JS

It’s possible to do this to get the localized full month name using native .

var objDate = new Date("10/11/2009"),
    locale = "en-us",
    month = objDate.toLocaleString(locale, { month: "long" });

But this only gets the month number for a given date. I’d simply like to get the month name corresponding to a month number. For example, if I do getMonth(2) it would return February. How can I implement getMonth using native (no libraries like moment)?

You are already close:

var getMonth = function(idx) {

  var objDate = new Date();

  var locale = "en-us",
      month = objDate.toLocaleString(locale, { month: "long" });

    return month;


To get all the months of a year and days of the week, loop over a set of dates and use toLocaleString with appropriate options to get the required values:

function getLocalDayNames() {
  let d = new Date(2000,0,3); // Monday
  let days = [];
  for (let i=0; i<7; i++) {
    d.setDate(d.getDate() + 1);
  return days;


function getLocalMonthNames() {
  let d = new Date(2000,0); // January
  let months = [];
  for (let i=0; i<12; i++) {
    d.setMonth(i + 1);
  return months;


The language default means toLocaleString uses the default language of the implementation that the code is running in.

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .
Read More:   Using the jQuery each() function to loop through classname elements

Similar Posts