7

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

4

6 回答 6

13

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

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

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

扩展所有月份的阵列以使其功能齐全。

于 2012-11-01T13:29:38.377 回答
5

给出从 0(一月)到 11(十二月)的值的更简单方法:

var monthString = 'December';
var dat = new Date('1 ' + monthString + ' 1999');
alert(dat.getMonth());
于 2012-11-01T13:37:05.953 回答
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。

于 2012-11-01T13:37:23.393 回答
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;
于 2012-11-01T14:00:06.970 回答
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]);
于 2012-11-01T13:34:21.070 回答
1

根据这些信息的来源,您可能对使用名为 DateJS 的库感兴趣:

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

于 2012-11-01T13:33:05.217 回答