Подтвердить что ты не робот

Получать все месяцы с года в moment.js

Я хочу получить имя месяца от года в moment.js

если год 2011, то я хочу, чтобы все месяцы имя в momentjs

Я пробовал этот ниже код, но он не работает для меня.

var xxx = moment().months(2011);

Отображение результата

enter image description here

также я пробовал xxx.months(), но он возвращает результат 7

но я хочу jan,feb,mar,......dec. hmm Что я могу сделать?

4b9b3361

Ответ 1

Для этого существует функция:

moment.monthsShort()
// ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]

Или же с помощью форматирования вручную:

Array.apply(0, Array(12)).map(function(_,i){return moment().month(i).format('MMM')})

Я предполагаю, что вы хотите отображать все имена, используя локальные данные Moment.js, что является разумным подходом.

Ответ 2

Используя момент .js у вас есть следующие методы:

moment.month() // long names

возвращает:

[ 'January',
  'February',
  'March',
  'April',
  'May',
  'June',
  'July',
  'August',
  'September',
  'October',
  'November',
  'December' ]

а также

moment.monthsShort() // short names

возвращает:

["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

Ответ 3

если год 2011, то я хочу, чтобы все месяцы имя в momentjs

Почему год? Месячные имена не изменяются.

Вы можете получить месячные имена от Moment следующим образом:

var m = moment();
for (var i = 0; i < 12; i++) {
 console.log(m.months(i).format('MMMM'));
}

Ответ 4

/**
 * Returns an array of all month names for a given language
 * in the specified format.
 *
 * @param lang {string} Language code
 * @param frmt {string} Possible values: {'M','MM','MMM','MMMM'}
 * @return the array of month names
 */
function getMonthNames(lang, frmt) {
  var userLang = moment.lang();            // Save user language
  moment.lang(lang);                       // Switch to specified language
  var months = [];                         // Months array
  var m = moment("2011");                  // Create a moment in 2011
  for (var i = 0; i < 12; i++)             // Loop from 0 to 12 (exclusive)
    months.push(m.months(i).format(frmt)); // Append the formatted month
  moment.lang(userLang);                   // Restore user language
  return months;                           // Return the array of months
}

function println(text) {
  text = arguments.length > 1 ? [].join.call(arguments, ' ') : text;
  document.getElementById('disp').innerHTML += text + '\n';
}

println('English:', getMonthNames('en-US', 'MMM'));
println('Bengali:', getMonthNames('bn', 'MMM'));
println('Español:', getMonthNames('es', 'MMM'));
#disp {
  white-space: pre;
  font-family: monospace;
}
<!-- http://cdnjs.com/libraries/moment.js/ -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.min.js"></script>

<div id="disp"></div>

Ответ 5

Вы можете использовать следующую функцию, чтобы получить список дней и месяцев для цели листинга -

var iIndex, 
sArrMonths, sMonth;
for(iIndex = 0; iIndex < 12; iIndex++)
{
    sMonth = moment.localeData().months(moment([0,iIndex]), "");
    sArrMonths.push(sMonth);
}

Здесь вы можете проверить живой пример - Локализованный месяц и список дней недели

Ответ 6

Вам понадобится доступ к месяцам из массива:

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

var monthInt = new Date().getMonth();
var monthString = months[monthInt];

Ответ 7

Мне нужен массив с именем месяца и месяцами, чтобы отобразить их в ng-optiosn, поэтому я немного расширил решение Klaster_1.

Array.apply(0, Array(12)).map(
                    function(_,i){
                          var elem    ={};
                          elem.id     = parseInt(i+1);
                          elem.name   = moment().month(i).format('MMM'); 
                          return elem;
                    }
              )

Ответ 8

Это 2019 год, и вы больше не должны использовать moment.js, так как класс vanilla Date() имеет все, что нам нужно. За исключением этого немного функциональности.

Вот что я использую: Там модуль months NPM, который имеет все месяцы на разных языках. Это около 991 байта в сжатом виде.

Пример с правильным синтаксисом import:

import months from 'months'

console.log(months.de)