10

Получить название месяца из даты

10

Заголовок: Как получить название месяца (например: Окт/Октябрь) из объекта даты в JavaScript?

Описание:
Я пытаюсь извлечь название месяца из объекта даты в JavaScript. У меня есть следующий код:

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

Как я могу сгенерировать название месяца (например, "Окт" для "October") из этого объекта? Я был бы признателен за любые предложения или решение этой проблемы.

5 ответ(ов)

1

Вы можете создать методы на JavaScript для получения названия месяца с поддержкой локализации, используя следующий код:

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: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
    month_names_short: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Août', 'Sep', 'Oct', 'Nov', 'Déc']
};

Теперь вы можете вызывать getMonthName('fr') или getMonthNameShort('fr'), чтобы получить название месяца на французском языке.

0

Если нам нужно обработать входные данные, то мы можем использовать следующий подход:

Входные данные: '2020-12-28'

Код:

new Date('2020-12-28').toLocaleString('en-us', {month: 'short', year: 'numeric'})

Вывод: "Dec 2020"

Таким образом, используя метод toLocaleString с заданными параметрами, мы можем получить сокращенное название месяца и год из даты.

0

Если вас не смущает расширение прототипа Date (хотя есть хорошие причины этого не делать), вы можете создать очень простой метод:

Date.prototype.monthNames = [
    "Январь", "Февраль", "Март",
    "Апрель", "Май", "Июнь",
    "Июль", "Август", "Сентябрь",
    "Октябрь", "Ноябрь", "Декабрь"
];

Date.prototype.getMonthName = function() {
    return this.monthNames[this.getMonth()];
};
Date.prototype.getShortMonthName = function () {
    return this.getMonthName().substr(0, 3);
};

// использование:
var d = new Date();
alert(d.getMonthName());      // "Октябрь"
alert(d.getShortMonthName()); // "Окт"

Эти функции будут применяться ко всем объектам Date в JavaScript.

0

Если вы в спешке... вот вам решение!

const date = new Date(Date.now());
const month = date.toLocaleString('en-US', { month: 'short' }); // Для краткого формата месяца используйте 'short'
console.log(month); // Ожидаемый вывод: "Apr"

Этот код создаёт объект Date, и затем использует метод toLocaleString, чтобы получить название месяца в сокращённом формате для локали 'en-US'. В данном случае, если текущая дата в апреле, вывод будет "Apr".

0

Вы можете добавить метод getMonthName к прототипу объекта Date, чтобы получить название месяца в виде строки. Вот как это можно сделать:

Date.prototype.getMonthName = function() {
    var monthNames = [ "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", 
                       "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" ];
    return monthNames[this.getMonth()];
}

Теперь вы можете использовать этот метод следующим образом:

var month_Name = new Date().getMonthName();

Таким образом, переменная month_Name будет содержать название текущего месяца на русском языке.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь