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

use*_*159 7 javascript localization date

可以使用本机获取本地化的完整月份名称.

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

但这仅获取给定日期的月份数.我只想让月份名称对应一个月号.例如,如果我这样做getMonth(2)会返回February.如何getMonth使用本机实现(没有类似的库moment)?

k10*_*102 14

你已经很近了:

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));
Run Code Online (Sandbox Code Playgroud)

  • 我意识到这是一个非常古老的答案,但这是其中一种情况,它在 2 月的 29 日、30 日或 31 日无法正常工作,因为“Date”对象是用当前日期初始化的。这可以通过在设置月份之前添加 `objDate.setDate(1);` 来解决。 (4认同)