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

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

当前回答

如果你不想使用一个外部库,或者存储一个月份名称的数组,或者如果ECMAScript国际化API因为浏览器兼容性而不够好,你可以通过从日期输出中提取信息来实现:

var now = new Date();
var monthAbbrvName = now.toDateString().substring(4, 7);

这将为您提供缩写的月份名称,例如october。我相信日期将以各种格式出现,这取决于初始化和您的地区,因此请查看toDateString()返回的内容,并基于此重新计算您的substring()值。

其他回答

使用JavaScript将Date格式化为“dd- mm -yyyy”,请使用下面的代码

const monthNames = [“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月” ]; 常量 d = 新日期(); var dd = String(d.getDate())).padStart(2, '0'); var mm = String(d.getMonth() + 1).padStart(2, '0'); var yyyy = d.getFullYear(); var fullDate = +dd +“-”+ monthNames[d.getMonth()] +“-”+ yyyy; document.write(“日期是:”+ 完整日期);

您可以简单地使用date . tolocaledatestring()并解析所需的日期作为参数

const事件=新的日期(日期。Utc (2012, 11,20,3,0,0)); Const选项={年:'numeric',月:'short',日:'numeric'}; console.log(事件。toLocaleDateString(“de-DE”,选项)); //期望输出:Donnerstag, 20。Dezember 2012 console.log(事件。toLocaleDateString(“en - us”,选项)); //美国格式 //如果你只想要这个月 console.log(事件。toLocaleDateString(undefined, {month: 'short'})); console.log(事件。toLocaleDateString(undefined, {month: 'long'}));

您可以在Firefox文档中找到更多信息

在IE 11, Chrome, Firefox上测试

const dt = new Date(); Const locale = navigator。语言!= undefined ?导航器。[0]: navigator.language; const fullMonth = dt。toLocaleDateString(区域设置,{month: 'long'}); console.log (fullMonth);

不幸的是,提取月份名称的最佳方法是从UTCString表示中提取:

Date.prototype.monthName = function() {
    return this.toUTCString().split(' ')[2]
};

d = new Date();
//=> Thu Mar 06 2014 23:05:21 GMT+0000 (GMT)

d.monthName();
//=> 'Mar'

对于momentjs,只需使用格式符号。

const myDate = new Date()
const shortMonthName = moment(myDate).format('MMM') // Aug
const fullMonthName = moment(myDate).format('MMMM') // August