datepickerのカレンダーにnヶ月前ボタンを加えたい

カレンダー本体に仕込むのはやめた。

search.html.erb

こんな感じかな?

<%= fields_for(:cond) do |r| -%>
<input type="button" id="Ago" name="Ago" value="六ヶ月前" class="button_link" />
<%= r.text_field :day_from, :size=>"15", :class=>"datepicker" %>
hoge.js

日付を取得してDate型に変換して処理してブチ込む。変換のところってスマートな書き方ってないものかな・・・?

$("#Ago").click(function(){
	var t_day=$("#cond_day_from").val().split("-");
	active_f={};
	active_f.year=t_day[0];
	active_f.month=t_day[1];
	active_f.day=t_day[2];
	prev_day=new Date(active_f.year, active_f.month-1, active_f.day);		
	prev_day.setMonth(prev_day.getMonth()-6);
	$("#cond_day_from").val(getDateFormat(prev_day));
});

ちょっとだけスマート、、、ハッシュの所は使いまわすことが前提なのだ。

$("#Ago").click(function(){
	var t=$("#cond_day_from").val().split("-");
	var act = {year: t[0], month: t[1], day: t[2]};
	var pre = new Date(act.year, act.month-1, act.day);
	pre.setMonth(pre.getMonth()-6);
	$("#cond_day_from").val(getDateFormat(pre));
});

使いまわさないなら、これが現実的な最短かな?

$("#Ago").click(function(){
	var t=$("#cond_day_from").val().split("-");
	var pre = new Date(t[0], t[1]-1, t[2]);
	pre.setMonth(pre.getMonth()-6);
	$("#cond_day_from").val(getDateFormat(pre));
});