日付範囲をすばやく選択するためのドロップダウン メニューが必要です。たとえば、「先週」、「先月」、「過去 3 か月」などです。そういうもの。これらのいずれかを選択すると、選択した開始日と終了日が 2 つのテキスト ボックスに入力されます。JUI datepicker でいくつかのことを試しましたが、Google の後でそれを行う方法ではないようです。
どんな助けでも大歓迎です。
ありがとう。
日付範囲をすばやく選択するためのドロップダウン メニューが必要です。たとえば、「先週」、「先月」、「過去 3 か月」などです。そういうもの。これらのいずれかを選択すると、選択した開始日と終了日が 2 つのテキスト ボックスに入力されます。JUI datepicker でいくつかのことを試しましたが、Google の後でそれを行う方法ではないようです。
どんな助けでも大歓迎です。
ありがとう。
同様のことをしましたが、ラジオボタンを使用しました。それが役に立てば幸い:
function reset_last_checkboxes() {
$("#export_last_month").attr("checked", false);
$("#export_3_last_months").attr("checked", false);
$("#export_last_year").attr("checked", false);
}
var date_format = "DD, d MM, yy";
$("#id_from_date").attr("readonly", "readonly");
$("#id_till_date").attr("readonly", "readonly");
$("#id_from_date").datepicker();
$("#id_till_date").datepicker();
$( "#id_from_date" ).change(function() {
$( "#id_from_date" ).datepicker( "option", "dateFormat", date_format );
});
$( "#id_till_date" ).change(function() {
$( "#id_till_date" ).datepicker( "option", "dateFormat", date_format );
});
$( "#id_from_date" ).click(function() {
reset_last_checkboxes();
});
$( "#id_till_date" ).click(function() {
reset_last_checkboxes();
});
$("#id_till_date").val(format_date(new Date(now)));
$("#export_last_month").click(function(){
var dt = new Date(now);
$("#id_till_date").val(format_date(dt));
$("#id_from_date").val(format_date(prevMonth(dt)));
});
$("#export_3_last_months").click(function(){
var dt = new Date(now);
$("#id_till_date").val(format_date(dt));
$("#id_from_date").val(format_date(prevMonth(prevMonth(prevMonth(dt)))));
});
$("#export_last_year").click(function(){
var dt = new Date(now);
$("#id_till_date").val(format_date(dt));
for (var i=0;i<12;i++) {
dt = prevMonth(dt);
}
$("#id_from_date").val(format_date(dt));
});
私のラジオボタンをいつでもドロップダウンメニューに置き換えて、このコードを私よりも上手に書くことができます:)
ちなみに、私はこのように計算します:
function prevMonth(dt){
var thisMonth = dt.getMonth();
dt.setMonth(thisMonth-1);
if(dt.getMonth() != thisMonth-1 && (dt.getMonth() != 11 || (thisMonth == 11 && dt.getDate() == 1)))
dt.setDate(0);
return dt;
}