2014-01-16 220 views
5

jQuery UI datepickerを使用しています。選択した日付を1日前に変更するボタンと、選択した日付を1日前に変更するボタンがあります。今、私の "前日"ボタンはうまく動作します。前のボタンを数回クリックしてから「次の日」ボタンをクリックすると、その日が1回だけ増えます。たとえば、datepickerが2014年1月10日に設定されていて、[次の日]ボタンをクリックすると、2014年1月11日に更新されますが、もう一度クリックすると何も起こりません。 「前日」ボタンをクリックせずに「次の日」ボタンをクリックすると、うまく動作します。jQuery UIのdatePickerで翌日と前日を選択する

var currentDay = new Date(); 
var nextDay = new Date(); 
var previousDay = new Date(); 

$('.next-day').each(function() { 
    $(this).on("click", function() { 

     if (previousDay < currentDay) { 
      nextDay.setDate(previousDay.getDate() + 1); 
     } else { 
      nextDay.setDate(nextDay.getDate() + 1); 
     } 

     $('#to').datepicker("setDate", nextDay); 
     $('#from').datepicker("setDate", nextDay); 
    }); 
}); 

編集:ここに私のjQueryのです。ここjsFiddle http://jsfiddle.net/p2T2g/

+0

これをjsFiddleで再作成できますか? – j08691

+0

私はopへのリンクを追加しました。 – user715564

+0

フィドルリンクはMIAです。 – j08691

答えて

12

それは時に非常に適切ではないが、それは難しいことではありません

$('.next-day').on("click", function() { 
    var date = $('#picker').datepicker('getDate'); 
    date.setTime(date.getTime() + (1000*60*60*24)) 
    $('#picker').datepicker("setDate", date); 
}); 

$('.prev-day').on("click", function() { 
    var date = $('#picker').datepicker('getDate'); 
    date.setTime(date.getTime() - (1000*60*60*24)) 
    $('#picker').datepicker("setDate", date); 
}); 
溶液上の

FIDDLE

+0

あなたのソリューションを少し修正する必要がありましたが、間違いなくトリックを行い、コードを少しスリム化しました。ありがとう。 – user715564

+0

私のために数時間を節約できました。働いた! – JayKandari

+0

それは私のために少し時間を節約しました。 –

5

のようなものですあなたは夏時間の節約 - 例えば英国のような国は1時間短く、1日増分のためには下にするのがよい -

 

    $('.next-day').on("click", function() { 
     var date = $('#picker').datepicker('getDate'); 
     date.setDate(date.getDate() + 1) 
     $('#picker').datepicker("setDate", date); 
    }); 

関連する問題