1

私はJQueryを初めて使用しますが、問題を解決するための正しい方法を見つけることができませんでした。

これが私が書いたコードです:

$(function() {
         $("#from").datepicker({
                    //dateFormat: 'yy-mm-dd',
                        minDate: 0,
                    defaultDate: "+1w",
                    changeMonth: true,
                    numberOfMonths: 1,
                        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], 
                    onSelect: function(selectedDate) {
                        $("#to").datepicker("option", "minDate", selectedDate);
                    }
                });

                $("#to").datepicker({
                    //dateFormat: 'yy-mm-dd',
                        minDate: 0,
                    defaultDate: "+1w",
                    changeMonth: true,
                    numberOfMonths: 1,
                        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
                    onSelect: function(selectedDate) {
                        $("#from").datepicker("option", "maxDate", selectedDate);
                    }
                });
});

今日が土曜日より前の場合は「#from」テキストボックスを最も近い土曜日(日付)に設定し、それ以外の場合は「#to」テキストボックスを日曜日(日付)に設定します。それ以外の場合は、両方のテキストボックスに日曜日(日付)をデフォルトとして設定します。日。

元。今日は2013年2月27日(水)です。2013年3月2日を「#from」に、2013年3月3日を「#to」に入れたいです。今日が2013年3月2日なら、入れたいです。 2013年3月3日両方のテキストボックス。

変数currDayを作成して、今日の日付をそれに保存することを考えました。datepickerの日数は0〜6なので、現在の日と次の土曜日/日曜日の差を計算し、デフォルトの日付をcurrDay+diffに設定します。

どうすればそれを行うことができますか?

どうもありがとうございました。

4

2 に答える 2

0

現在の曜日を取得した場合は、その週の位置からその数値を減算して、目的の結果を得ることができます。

$(function () {
    var d = new Date();
    var n = d.getDay();

    var from=6-n;
    var to=7-n;

    if(n==0)
        from=0;

    $("#from").datepicker({
        //dateFormat: 'yy-mm-dd',
        minDate: 0,
        defaultDate: "+"+from+"d",
        changeMonth: true,
        numberOfMonths: 1,
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        onSelect: function (selectedDate) {
            $("#to").datepicker("option", "minDate", selectedDate);
        }
    });

    $("#to").datepicker({
        //dateFormat: 'yy-mm-dd',
        minDate: 0,
        defaultDate:  "+"+to+"d",
        changeMonth: true,
        numberOfMonths: 1,
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        onSelect: function (selectedDate) {
            $("#from").datepicker("option", "maxDate", selectedDate);
        }
    });
});

http://jsfiddle.net/6WHyK/

于 2013-02-28T00:22:28.243 に答える
0

私はおそらく私の質問をうまく明確にしませんでした...試してくれてありがとうr0m4n。私はこれを自分で理解することができます。次のコードをjsセクションに貼り付けると、私がやろうとしていたことがわかります...

function toDay() {
    var date = new Date();
    var currDay = date.getDay();
    var diff = 7 - currDay;
    return (diff);
}


$(function () {
    var saturday = new Date();
    var sunday = new Date();
    sunday.setDate(sunday.getDate() + toDay());
    if (toDay != 0) {
        saturday.setDate(saturday.getDate() - 1 + toDay());
    } else {
        saturday = sunday;
    }
    var comingSaturday = (saturday.getMonth() + 1) + '/' + saturday.getDate() + '/' + saturday.getFullYear();

    var comingSunday = (sunday.getMonth() + 1) + '/' + sunday.getDate() + '/' + sunday.getFullYear();
    $("#from").val(comingSaturday);
    $("#to").val(comingSunday);
})

そしてもちろん、私は新しいです....私はいくつかの間違いを犯したかもしれません、私のためにエラーを選んでください。再度、感謝します。

于 2013-02-28T00:41:29.290 に答える