36

クエリを実行して、.datepicker() を使用して選択された特定の日付範囲に基づいてデータを取得する関数があります。応答データにある日付ピッカーを、クエリが実行される前に選択された日付範囲に戻そうとしています。

queryDate = '2009-11-01';
$('#datePicker').datepicker('setDate', queryDate);

日付ピッカーを今日の日付に設定すると、興味深い結果が得られます。エラーを吐き出すだけなら、それほど混乱することはありません。なぜ今日の日付に設定されるのですか?

「yyyy-mm-dd」のようにフォーマットされた日付を取得して、日付ピッカーを設定するにはどうすればよいですか?

日付ピッカーがリンクされているテキストボックスを「queryDate」に設定するのが最善かもしれないと考えています。

4

6 に答える 6

36

非常に古いブラウザをサポートしたい場合は、Dateコンストラクタで ISO8601 日付形式を使用することは IE9 以前ではサポートされていないため、日付文字列を解析する必要があります。

var queryDate = '2009-11-01',
    dateParts = queryDate.match(/(\d+)/g)
    realDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);  
                                    // months are 0-based!
// For >= IE9
var realDate = new Date('2009-11-01');  

$('#datePicker').datepicker({ dateFormat: 'yy-mm-dd' }); // format to show
$('#datePicker').datepicker('setDate', realDate);

ここで上記の例を確認してください。

于 2009-12-23T16:43:50.630 に答える
11

Scobal の投稿が暗示しているように、datepicker は文字列だけでなく、Date オブジェクトを探しています。したがって、サンプルコードを変更して、必要なことを行うには:

var queryDate = new Date('2009/11/01'); // Dashes won't work
$('#datePicker').datepicker('setDate', queryDate);
于 2009-12-23T16:41:18.050 に答える
7

次のように変更してみてください。

queryDate = '2009-11-01';
$('#datePicker').datepicker({defaultDate: new Date (queryDate)});
于 2009-12-23T16:36:48.803 に答える
2
function calenderEdit(dob) {
    var date= $('#'+dob).val();
    $("#dob").datepicker({
        changeMonth: true,
        changeYear: true, yearRange: '1950:+10'
    }).datepicker("setDate", date);
}
于 2011-09-20T12:17:54.667 に答える
1

minDate または maxDate オプションが設定されている場合は、設定しようとしている日付が許可された日付範囲内にあることを確認してください。

于 2010-09-16T12:49:10.547 に答える