2017-01-11 4 views
-4

Я изо всех сил пытаюсь сделать расширение объекта даты, чтобы вернуть текущий месяц в имени. Он должен вернуться (январь), если вызывается метод d.getMonthText().Расширение даты javascript получить месяц имя

Я искал расширение в Интернете, но я не могу понять, как это понять.

ответ

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);

3

Несмотря на то что вы не можете добавлять методы практически к любому встроенному объекту 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(); 
+0

Wow, у нас есть супер подобный ответ –

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> 
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

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; 
} 
-2

Вы можете обезвредить объект прототипа даты и реализовать способ продления:

Date.prototype.getMonthName = function() { 
 
    return "January,February,March,April,May,June,July,August,September,October,November,December".split(",")[this.getMonth()]; 
 
}

 Смежные вопросы

  • Нет связанных вопросов^_^