从moment.js获取年份的所有月份名称

Ram*_*ran 20 javascript momentjs

我希望从一年中获得所有月份的名称.js

如果年份是2011,那么我想在momentjs中所有月份的名字

我已经尝试过以下代码,但它对我不起作用.

var xxx = moment().months(2011);
Run Code Online (Sandbox Code Playgroud)

显示结果是

在此输入图像描述

我也试过了xxx.months(),但它的回归结果是7

但我想要jan,feb,mar,......dec.嗯我该怎么办?

Kla*_*r_1 53

碰巧有一个功能:

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

或者使用手动格式化:

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

我想你想利用Moment.js语言环境数据显示所有名称,这是一种合理的方法.

  • [Per**Tim R Wood**:"所有这些都在2.0.0中消失."moment.calendar`,`moment.relativeTime`,`moment.months`,***`moment.monthsShort`***,`moment.monthsMin`,`moment.weekdays`,`moment.weekdaysShort`,`moment.longDateFormat`,`moment.meridiem`,`moment.ordinal`"](https://github.com/moment/此刻/问题/ 334#问题-5006888) (9认同)
  • 您必须在**2.8**中使用localeData():**moment.localeData().weekdaysShort()** (6认同)

Mik*_*hez 36

使用moment.js您有以下方法:

moment.months() // long names
Run Code Online (Sandbox Code Playgroud)

收益:

[ 'January',
  'February',
  'March',
  'April',
  'May',
  'June',
  'July',
  'August',
  'September',
  'October',
  'November',
  'December' ]
Run Code Online (Sandbox Code Playgroud)

moment.monthsShort() // short names
Run Code Online (Sandbox Code Playgroud)

收益:

["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
Run Code Online (Sandbox Code Playgroud)


bva*_*ghn 7

如果这一年是2011年,那么我希望所有月份都在momentjs中命名

为什么年份很重要?月份名称不会更改.

您可以从Moment获得月份名称,如下所示:

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


Mr.*_*irl 5

/**
 * 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'));
Run Code Online (Sandbox Code Playgroud)
#disp {
  white-space: pre;
  font-family: monospace;
}
Run Code Online (Sandbox Code Playgroud)
<!-- 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>
Run Code Online (Sandbox Code Playgroud)

产量

English: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
Bengali: ????,???,?????,???,??,???,???,??,?????,?????,??,??????
Español: ene.,feb.,mar.,abr.,may.,jun.,jul.,ago.,sep.,oct.,nov.,dic.
Run Code Online (Sandbox Code Playgroud)