代码之家  ›  专栏  ›  技术社区  ›  user779159

使用本机JS获取本地化的月份名称

  •  25
  • user779159  · 技术社区  · 9 年前

    .

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

    但这只能获得给定日期的月数。我只想得到与月号对应的月名。例如,如果我 getMonth(2) 它会回来的 February .我如何实现 getMonth 使用本地 moment )?

    2 回复  |  直到 8 年前
        1
  •  51
  •   Thomaz Capra    6 年前

    您已经接近:

    var getMonth = function(idx) {
    
      var objDate = new Date();
      objDate.setDate(1);
      objDate.setMonth(idx-1);
    
      var locale = "en-us",
          month = objDate.toLocaleString(locale, { month: "long" });
    
        return month;
    }
    
    console.log(getMonth(1));
    console.log(getMonth(12));
        2
  •  0
  •   RobG    4 年前

    要获取一年中的所有月份和一周中的天数,请循环一组日期并使用 使用适当的选项获取所需的值:

    function getLocalDayNames() {
      let d = new Date(2000,0,3); // Monday
      let days = [];
      for (let i=0; i<7; i++) {
        days.push(d.toLocaleString('default',{weekday:'long'}));
        d.setDate(d.getDate() + 1);
      }
      return days;
    }
    
    console.log(getLocalDayNames());
    
    function getLocalMonthNames() {
      let d = new Date(2000,0); // January
      let months = [];
      for (let i=0; i<12; i++) {
        months.push(d.toLocaleString('default',{month:'long'}));
        d.setMonth(i + 1);
      }
      return months;
    }
    
    console.log(getLocalMonthNames());

    语言 方法 toLocaleString 使用运行代码的实现的默认语言。

    推荐文章