从给定的月份名称获取月份编号

时间:2012-11-01 13:25:34

标签: javascript

我正在尝试从给定的月份名称中找到相应的月份编号。实现这一目标最简单的方法是什么?

6 个答案:

答案 0 :(得分:13)

在这种情况下,实际上并不需要jQuery。

这些方面的JavaScript可能会有所帮助:

var monthNumber = ["january", "february", "march"].indexOf(monthname.toLowerCase()) + 1;

使用所有月份扩展数组以使其完全正常运行。

答案 1 :(得分:4)

提供从0(1月)到11(12月)的值的更简单方法:

var monthString = 'December';
var dat = new Date('1 ' + monthString + ' 1999');
alert(dat.getMonth());

答案 2 :(得分:3)

Array.prototype.indexOf的替代方案是对象:

var months = {jan: 0, feb:1, mar:2 ...};
var monthName = 'January';

var monthNum = months[monthName.substring(0,3).toLowerCase()];

优点是你可以接受各种形式的月份名称,如Jan,jan,JAN,January,JANUARY等。

哦,上面假设你想要一个javascript Date构造函数输入的月号。要获取日历月份数,只需将值增加1.

答案 3 :(得分:3)

你不需要JQuery,因为这可以通过javascript轻松解决。

使用键值对,如下所示

var months = {jan:1, feb:2, mar:3, apr:4, may:5, jun:6};

您可以通过调用月份名称轻松获取月号,如下所示

months.jan  // will return 1 to the caller

alert(months.feb); //will shows 2 in message box;

答案 4 :(得分:1)

根据此信息的来源,您可能有兴趣使用名为DateJS的库:

它不使用jquery,但它擅长解析日期。如果您查看下载部分,如果您需要处理外语输入,它还包含150多个国际化的库。

答案 5 :(得分:1)

我这样做的方式就像这样

制作一个包含所有月份的数组;

var data=new Array("January","February","March","April","May","June","July","August","September","October","November","December")

//Lets say you get this back from your get month function. This should return january, because that is the first month..
var numberOfMonth = 1;

//An array starts with the index 0, so you could do minus 1 to get the correct one

alert data[numberOfMonth - 1]);