Самый простой способ конвертировать число месяцев в месяц в JS? (Jan = 01) - программирование
Подтвердить что ты не робот

Самый простой способ конвертировать число месяцев в месяц в JS? (Jan = 01)

Просто хочу скрытый Ян до 01 (формат даты)

Я могу использовать array(), но ищет другой способ...

Любое предложение?

4b9b3361

Ответ 1

Просто для удовольствия я сделал это:

function getMonthFromString(mon){
   return new Date(Date.parse(mon +" 1, 2012")).getMonth()+1
}

Бонус: он также поддерживает полные имена месяцев:-D Или новая улучшенная версия, которая просто возвращает -1 - измените ее, чтобы выдать исключение, если хотите (вместо возврата -1):

function getMonthFromString(mon){

   var d = Date.parse(mon + "1, 2012");
   if(!isNaN(d)){
      return new Date(d).getMonth() + 1;
   }
   return -1;
 }

Sry для всех изменений - опережая себя

Ответ 2

Другой способ:

alert( "JanFebMarAprMayJunJulAugSepOctNovDec".indexOf("Jun") / 3 + 1 );

Ответ 3

Если вы не хотите массив, то как насчет объекта?

var months = {
    'Jan' : '01',
    'Feb' : '02',
    'Mar' : '03',
    'Apr' : '04',
    'May' : '05',
    'Jun' : '06',
    'Jul' : '07',
    'Aug' : '08',
    'Sep' : '09',
    'Oct' : '10',
    'Nov' : '11',
    'Dec' : '12'
}

Ответ 4

Я обычно использовал функцию:

function getMonth(monthStr){
    return new Date(monthStr+'-1-01').getMonth()+1
}

И назовите его так:

getMonth('Jan');
getMonth('Feb');
getMonth('Dec');

Ответ 5

Еще один способ сделать то же самое

month1 = month1.toLowerCase();
var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
month1 = months.indexOf(month1);

Ответ 6

Если вы используете moment.js:

moment().month("Jan").format("M");

Ответ 7

function getMonthDays(MonthYear) {
  var months = [
    'January',
    'February',
    'March',
    'April',
    'May',
    'June',
    'July',
    'August',
    'September',
    'October',
    'November',
    'December'
  ];

  var Value=MonthYear.split(" ");      
  var month = (months.indexOf(Value[0]) + 1);      
  return new Date(Value[1], month, 0).getDate();
}

console.log(getMonthDays("March 2011"));

Ответ 8

var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

то просто вызовите monthNames [1] это будет фев.

Итак, вы всегда можете сделать что-то вроде

  monthNumber = "5";
  jQuery('#element').text(monthNames[monthNumber])

Ответ 9

Вот еще один способ:

// Months are in Spanish
var currentMonth = 1
var months = ["ENE", "FEB", "MAR", "APR", "MAY", "JUN", 
              "JUL", "AGO", "SEP", "OCT", "NOV", "DIC"];

console.log(months[currentMonth - 1]);

Ответ 10

Вот модифицированная версия выбранного ответа:

getMonth("Feb")
function getMonth(month) {
  d = new Date().toString().split(" ")
  d[1] = month
  d = new Date(d.join(' ')).getMonth()+1
  if(!isNaN(d)) {
    return d
  }
  return -1;
}

Ответ 11

function getMonthString(month){
  return new Date(Date.parse(month+" 1, 2012")).getMonth()+1;
}

Ответ 12

Вот простая однолинейная функция

//ECHMA5
function GetMonth(anyDate) { 
   return 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(',')[anyDate.getMonth()];
 }
//
// ECMA6
var GetMonth = (anyDate) => 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(',')[anyDate.getMonth()];