7

指定された月の名前から対応する月番号を見つけようとしています。これを達成する最も簡単な方法は何ですか?

4

6 に答える 6

13

この場合、jQueryは実際には必要ありません。

これらの線に沿ったJavaScriptは役立つかもしれません:

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

アレイをすべての月で拡張して、完全に機能するようにします。

于 2012-11-01T13:29:38.377 に答える
5

0(1月)から11(12月)までの値を与える簡単な方法:

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

これはjavascriptで簡単に解決できるため、JQueryは必要ありません。

次のようなKey-Valueペアを使用します

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

この情報がどこから来ているかに応じて、DateJSと呼ばれるライブラリの使用に興味があるかもしれません。

jqueryは使用しませんが、日付の解析には適しています。ダウンロードセクションを見ると、外国語の入力を処理する必要がある場合は、150以上の国際化されたライブラリも含まれています。

于 2012-11-01T13:33:05.217 に答える
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 に答える