在JS中将月份名称转换为月份号码的最简单方法? (Jan = 01)

时间:2012-11-26 14:10:13

标签: javascript date

只想将 Jan 转换为 01 (日期格式)

我可以使用array()但寻找另一种方式......

有什么建议吗?

12 个答案:

答案 0 :(得分:62)

为了好玩,我这样做了:

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进行所有编辑 - 超越自己

答案 1 :(得分:41)

另一种方式;

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

答案 2 :(得分:23)

如果你不想要一个数组那么对象呢​​?

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

答案 3 :(得分:6)

我通常用来做一个功能:

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

并称之为:

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

答案 4 :(得分:6)

另一种做同样的方法

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

答案 5 :(得分:6)

如果您使用的是moment.js:

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

答案 6 :(得分:2)

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

然后只需调用monthNames [1] 这将是2月

所以你总能做出像

这样的事情
  monthNumber = "5";
  jQuery('#element').text(monthNames[monthNumber])

答案 7 :(得分:2)

VehicleNo

答案 8 :(得分:2)

对于 2021 年仍在关注此答案的任何人来说,toLocaleDateString 现在得到了广泛的支持

let monthNumberFromString = (str) => {
  return new Date(`${str} 01 2000`).toLocaleDateString(`en`, {month:`2-digit`})
}
// monthNumberFromString(`jan`) returns 01

答案 9 :(得分:1)

这是另一种方式:

// 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 :(得分:1)

以下是所选答案的修改版本:

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 :(得分:0)

这是一个简单的班轮功能

//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()];