getting the value of daterangepicker bootstrap

前端 未结 7 1043

Hi im new to using javascript and encountered a problem while using daterangepicker bootstrap. I manage do implement this demo that i got but I am stuck at getting the value of

相关标签:
7条回答
  • 2021-01-30 09:40

    You must retrieve the data object:

    var startDate = $('#reportrange').data('daterangepicker').startDate._d;
    var endDate = $('#reportrange').data('daterangepicker').endDate._d;
    

    Notice the _d request at the end to get the actual, javascript date object.

    Also, if the data object is ever undefined then it can be the result of bootstrap.js being re-instantiated. This happened to me on a MVC page where I forgot to surround my scripts with:

    @region scripts {
    
    }
    
    0 讨论(0)
  • 2021-01-30 09:47
    $('#IDOfDateRangePicker').data('daterangepicker').startDate;
    $('#IDOfDateRangePicker').data('daterangepicker').endDate;
    
    0 讨论(0)
  • 2021-01-30 09:49

    Give your button an id

    <button type="button" id="saveBtn" class="btn btn-primary" data-dismiss="modal">Save changes</button>
    

    Add startDate and endDate variables to your script

    var startDate;
    var endDate;
    

    Set these variables in the daterangepicker callback

    startDate = start;
    endDate = end;
    

    Wire up the click event for that button in your $(document).ready function

    $('#saveBtn').click(function(){
        console.log(startDate.format('D MMMM YYYY') + ' - ' + endDate.format('D MMMM YYYY'));
    });
    

    The complete javascript

    <script type="text/javascript">
    var startDate;
    var endDate;
    
    $(document).ready(function() {
        $('#reportrange').daterangepicker(
           {
              startDate: moment().subtract('days', 29),
              endDate: moment(),
              minDate: '01/01/2012',
              maxDate: '12/31/2014',
              dateLimit: { days: 60 },
              showDropdowns: true,
              showWeekNumbers: true,
              timePicker: false,
              timePickerIncrement: 1,
              timePicker12Hour: true,
              ranges: {
                 'Today': [moment(), moment()],
                 'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],
                 'Last 7 Days': [moment().subtract('days', 6), moment()],
                 'Last 30 Days': [moment().subtract('days', 29), moment()],
                 'This Month': [moment().startOf('month'), moment().endOf('month')],
                 'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
              },
              opens: 'left',
              buttonClasses: ['btn btn-default'],
              applyClass: 'btn-small btn-primary',
              cancelClass: 'btn-small',
              format: 'DD/MM/YYYY',
              separator: ' to ',
              locale: {
                  applyLabel: 'Submit',
                  fromLabel: 'From',
                  toLabel: 'To',
                  customRangeLabel: 'Custom Range',
                  daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr','Sa'],
                  monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
                  firstDay: 1
              }
           },
           function(start, end) {
            console.log("Callback has been called!");
            $('#reportrange span').html(start.format('D MMMM YYYY') + ' - ' + end.format('D MMMM YYYY'));
            startDate = start;
             endDate = end;    
    
           }
        );
        //Set the initial state of the picker label
        $('#reportrange span').html(moment().subtract('days', 29).format('D MMMM YYYY') + ' - ' + moment().format('D MMMM YYYY'));
    
        $('#saveBtn').click(function(){
            console.log(startDate.format('D MMMM YYYY') + ' - ' + endDate.format('D MMMM YYYY'));
        });
    
     });
    </script>  
    
    0 讨论(0)
  • 2021-01-30 09:57

    Simple, get direct the inputs range:

    $(document).ready(function(){
    
        $('#reportrange span').bind('DOMSubtreeModified', function(e){
            alert('New value is: '+$('input[name=daterangepicker_start]').val()+' to '+$('input[name=daterangepicker_end]').val());
        });
    
    })
    
    0 讨论(0)
  • 2021-01-30 09:59

    I know that this is not elegant at all. Sharing it anyway.

    First, we get the daterangepicker input box value:

    var date_range = $('#date_range').val();
    

    Now if we configure to show the dates between a ' - ', let's split with it:

    var dates = date_range.split(" - ");
    

    to get the dates as strings:

    var start = dates[0];
    var end = dates[1];
    

    to get the dates as Moment objects with a 'D MMMM YY' format:

    var start = moment(dates[0],'D MMMM YY');
    var end = moment(dates[1],'D MMMM YY');
    
    0 讨论(0)
  • 2021-01-30 10:05
    var endDate=  $("#IDOfDateRangePicker").data('daterangepicker').endDate.format('YYYY-MM-DD');
    

    or other formats;

    .endDate.format('YYYY-MM-DD'); 
    
    .endDate.format('D MM YYYY');
    
    .endDate.format('D MMMM YYYY');
    
    0 讨论(0)
提交回复
热议问题