我正在尝试从给定的月份名称中找到相应的月份编号。实现这一目标最简单的方法是什么?
答案 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]);