2017-01-02 4 views
0

次のコードを記述しました。同じ形式の複数のDateRangePicker

var start = moment().subtract(1, 'days'); 
var end = moment().subtract(1, 'days'); 
var start2 =moment().subtract(2, 'days'); 
var end2 =moment().subtract(2, 'days'); 

function cb(start, end, start2, end2) { 
    console.log(start2); 
    $('#reportrange3 span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); 
    $('#reportrange4 span').html(start2.format('MMMM D, YYYY') + ' - ' + end2.format('MMMM D, YYYY')); 
    retrievedata(start.format('YYYY-MM-DD'), end.format('YYYY-MM-DD'),start2.format('YYYY-MM-DD'), end2.format('YYYY-MM-DD')); 
} 

$('#reportrange3').daterangepicker({ 
    startDate: start, 
    endDate: end, 
    ranges: { 
     'Today': [moment(), moment()], 
     'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 
     'Last 7 Days': [moment().subtract(6, 'days'), moment()], 
     'Last 30 Days': [moment().subtract(29, 'days'), moment()], 
     'This Month': [moment().startOf('month'), moment().endOf('month')], 
     'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 
    } 
}, cb); 

$('#reportrange4').daterangepicker({ 
    startDate: start2, 
    endDate: end2, 
    ranges: { 
     'Today': [moment(), moment()], 
     'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 
     'Last 7 Days': [moment().subtract(6, 'days'), moment()], 
     'Last 30 Days': [moment().subtract(29, 'days'), moment()], 
     'This Month': [moment().startOf('month'), moment().endOf('month')], 
     'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 
    } 
}, cb); 

cb(start, end, start2, end2); 

私が持っている問題は、両方のreportrangeの値を更新する、にconsole.log(START2)は、このような「Today」または「Yesterday」として、テキスト値を返すということですので、それはエラーで終了します"今日"。形式( 'MMMM D、YYYY')は実際には機能しません...

ご存じですか?ありがとう!

+1

[jsfiddle](https://jsfiddle.net/dp7rzmw5/2261/)はうまくいきます。私はあなたを助けることができるようにフィドルを作成できますか? –

答えて

0

最後に解決策を見つけました。問題は変数の範囲から来ていました。

startnew = moment().subtract(1, 'days'); 
endnew = moment().subtract(1, 'days'); 
startnew2 =moment().subtract(2, 'days'); 
endnew2 =moment().subtract(2, 'days'); 

function cb3(start, end) { 
      startnew = start; 
      endnew = end; 
      $('#reportrange3 span').html(startnew.format('MMMM D, YYYY') + ' - ' + endnew.format('MMMM D, YYYY')); 
      retrievedata(startnew.format('YYYY-MM-DD'),endnew.format('YYYY-MM-DD'),startnew2.format('YYYY-MM-DD'),endnew2.format('YYYY-MM-DD')); 

     } 
function cb4(start2, end2) { 
      startnew2 = start2; 
      endnew2 = end2; 
      $('#reportrange4 span').html(start2.format('MMMM D, YYYY') + ' - ' + endnew2.format('MMMM D, YYYY')); 
      retrievedata(startnew.format('YYYY-MM-DD'),endnew.format('YYYY-MM-DD'),startnew2.format('YYYY-MM-DD'),endnew2.format('YYYY-MM-DD')); 
     } 



$('#reportrange3').daterangepicker({ 
      startDate: startnew, 
      endDate: endnew, 
      ranges: { 
       'Today': [moment(), moment()], 
       'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 
       'Last 7 Days': [moment().subtract(6, 'days'), moment()], 
       'Last 30 Days': [moment().subtract(29, 'days'), moment()], 
       'This Month': [moment().startOf('month'), moment().endOf('month')], 
       'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 
      } 
     }, cb3); 

$('#reportrange4').daterangepicker({ 
      startDate: startnew2, 
      endDate: endnew2, 
      ranges: { 
       'Today': [moment(), moment()], 
       'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 
       'Last 7 Days': [moment().subtract(6, 'days'), moment()], 
       'Last 30 Days': [moment().subtract(29, 'days'), moment()], 
       'This Month': [moment().startOf('month'), moment().endOf('month')], 
       'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 
      } 
     }, cb4); 

cb3(startnew, endnew); 
cb4(startnew2, endnew2); 
関連する問題