我努力在日期对象上进行扩展以返回当前月份的名称。如果调用方法d.getMonthText(),它应该返回(January)。
我已经在网上搜索了扩展程序,但我似乎无法弄明白。
答案 0 :(得分:8)
只需将date.getMonth()
方法值映射到月值
Date.prototype.getMonthText = function() {
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
return months[this.getMonth()];
}
var now = new Date();
var month = now.getMonthText();
console.log(month);
答案 1 :(得分:3)
虽然不推荐,但您可以通过其prototype属性向几乎任何javascript内置对象添加方法。
Date.prototype.getMonthName = function() {
let months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ];
return months[this.getMonth()];
};
然后使用它:
let date = new Date();
let month = date.getMonthName();
答案 2 :(得分:1)
只是要添加一个选项,您可以考虑 toLocaleString ,它应该支持ECMA 402国际化API。它不是无处不在,但值得考虑未来,因为它将使用ISO 639-1语言代码返回任何语言的月份名称:
Date.prototype.getMonthName = function(lang) {
// Default language is English
lang = lang || 'en-GB';
return this.toLocaleString(lang, {month:'long'});
}
console.log(new Date().getMonthName()) // English (default)
console.log(new Date().getMonthName('ar-sy')) // Arabic
console.log(new Date().getMonthName('es-py')) // Spanish

答案 3 :(得分:0)
你有一个非常基本的方式..这个函数会返回你的名字
<script>
function getMonthText(){
var month;
switch (new Date().getMonth()) {
case 0:
month= "Jan";
break;
case 1:
month= "Feb";
break;
case 2:
month= "March";
break;
case 3:
month= "April";
break;
case 4:
month= "May";
break;
case 5:
month= "June";
break;
case 6:
month= "July";
break;
case 7:
month= "August";
break;
case 8:
month= "Sep";
break;
case 9:
month= "Oct";
break;
case 10:
month= "Nov";
break;
case 11:
month= "Dec";
break;
}}
</script>
答案 4 :(得分:0)
ECMAScript 6版本:
getPreviousMonth(monthBefore) {
let monthList = [];
let date = new Date();
for (let i = 0; i < monthBefore; i++) {
date.setMonth(date.getMonth() - 1);
monthList.push(date.toLocaleString('en-us', {
month: 'long',
}));
}
return monthList;
}
答案 5 :(得分:-2)
你可以修补Date原型对象并实现扩展方法:
Date.prototype.getMonthName = function() {
return "January,February,March,April,May,June,July,August,September,October,November,December".split(",")[this.getMonth()];
}