2011-07-18 14 views
0

日付をdd/mm/yyyyでフォーマットするjquery datepickerがあります。誰かが日付を入力したり、日付を選択したり、読み込んだりするときに月の名前を表示する必要があります。私は月を得るのに苦労しています。 myDateは、datepickerに添付されたテキストボックスです。すべての日付と年の112、のために、私が18/07/2011の日付でそれを実行すると、私は月の5を取得jquery datepickerから月を抽出する

var date = new Date($("#myDate").val()); 
alert(date.getDate()); 
alert(date.getMonth()); 
alert(date.getDay()); 
alert(date.getYear()); 

日の4、7:私はこれを持っています非常に奇妙な。何が間違っているのですか?私がする必要があるのは、月ラベルを日付ピッカーで選択/入力された月に動的に変更することです。

答えて

3

日付ピッカーから日付を取得するには、$("#myDate").datepicker("getDate")を使用してください。あなたが現在行っていることはおそらく.val()を間違った方法で解釈するJavaScript Dateオブジェクトを構築します。

$('#myDate').datepicker('getDate') 

を使用して

+0

のおかげで、どのようにだろう私は月の名前を得る?私はそれをdatepickerから直接得ることができますか、私は7月に6を取得し、何とか月の名前を取得する必要がありますか? –

+0

ようこそ。あらかじめ定義された名前の配列を使用するか(JavaScriptの月はゼロに基づいていることに注意してください)、altFieldとaltFieldFormatを日付ピッカーと共に使用し、代替フィールドを月の名前で設定して後で抽出します([Datepicker Docs] //docs.jquery.com/UI/Datepicker)) – MeLight

+0

月ドロップダウンリストからテキストを直接取得する方法はありますか?それはそこにある、私はちょうどそれに得るようである –

1

は、より安全な方法であなたのJavaScript日付オブジェクトを取得します。さらに、getMonth()はインデックスがゼロの月を返しますので、7月は "6"として返されます。通年を返すには、次のコードを使用してください:.getFullYear()

可能性はjavascriptの "new Date()"が正しい日付形式で解析されていません。 datepickerの日付フォームを正しく設定していれば、そのウィジェットはあなたが 'getDate'メソッドを使うときに仕事をします。

あなたのコードでは、そのためになる:

var date = $("#myDate").datepicker('getDate'); 
alert(date.getDate());   // Day of the month 
alert(date.getMonth());  // Month with a zero index 
alert(date.getDay());   // Day of the week 
alert(date.getFullYear());  // The "full" year, e.g. 2011 

//あなたの値が設定した方法に多くを依存しますドロップダウンリストから正しい値を選択すると、選択リスト

のためのソリューションを更新しました。値がある場合、すなわち:

<select id="MySelect"> 
    <option value="1">Jan</option> 
</select> 

次に、あなたは、単に行うことができます:

$('#MySelect').val((date.getMonth() + 1)); 

は、これは、指定された月を選択します。あなたの値は月の名前のいくつかのバリエーション、すなわちある場合は:

<select id="MySelect"> 
    <option value="Jan">Jan</option> 
</select> 

次に、あなたは、その名に月の番号からのようなものにマッピングする機能が必要になります

var months = ['Jan', 'Feb', 'Mar', ...etc } 

function getMonthShortName(month) { 
    return months[month]; 
} 

$('#MySelect').val(getMonthShortName(date.getMonth())); 
関連する問題