从日期获取月份名称

我怎样才能从这个日期对象在JavaScript中生成月份的名称(例如:10月/ 10月)?

var objDate = new Date("10/11/2009");

较短的版本:

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

const d = new Date();
document.write("The current month is " + monthNames[d.getMonth()]);

现在可以使用ECMAScript Internationalization API执行此操作:

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

http://jsfiddle.net/dstorey/Xgerq/

“long”使用月份的全名,短名称使用“short”,使用更窄版本的“narrow”,例如字母语言中的第一个字母。

您可以将语言环境更改为任何您喜欢的语言环境,并且会使用该语言/国家/地区的正确名称。

使用toLocaleString你必须每次传入语言环境和选项。 如果您打算在多个不同日期使用相同的区域设置信息和格式化选项,则可以使用Intl.DateTimeFormat

var formatter = new Intl.DateTimeFormat("fr", { month: "short" }),
month1 = formatter.format(new Date()),
month2 = formatter.format(new Date(2003-05-12));

// sept. and déc.
console.log(month1 + " and " + month2);

这个API的主要问题是它是新的。 它仅适用于Blink浏览器(Chrome和Opera),IE11,Microsoft Edge和Firefox 29+。 它不支持Safari。

有关更多信息,请参阅我在国际化API上的博客文章。


这是另一个,支持本地化:)

Date.prototype.getMonthName = function(lang) {
    lang = lang && (lang in Date.locale) ? lang : 'en';
    return Date.locale[lang].month_names[this.getMonth()];
};

Date.prototype.getMonthNameShort = function(lang) {
    lang = lang && (lang in Date.locale) ? lang : 'en';
    return Date.locale[lang].month_names_short[this.getMonth()];
};

Date.locale = {
    en: {
       month_names: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
       month_names_short: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    }
};

您可以轻松添加对其他语言的支持:

Date.locale.fr = {month_names: [...]};
链接地址: http://www.djcxy.com/p/36733.html

上一篇: Get month name from Date

下一篇: MySQL Query GROUP BY day / month / year