获取daterangepicker引导程序的值

use*_*163 23 javascript jquery jsp datepicker daterangepicker

嗨我刚接触使用javascript并在使用daterangepicker bootstrap时遇到问题.我管理实现这个我得到的演示,但我坚持从javascript获取开始日期和结束日期的值.

这是javascript

<script type="text/javascript">
$(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'));

       }
    );
    //Set the initial state of the picker label
    $('#reportrange span').html(moment().subtract('days', 29).format('D MMMM YYYY') + ' - ' + moment().format('D MMMM YYYY'));
 });
</script>  
Run Code Online (Sandbox Code Playgroud)

这是将要处理onclick方法的按钮

<button type="button" class="btn btn-primary" data-dismiss="modal">Save changes</button>  
Run Code Online (Sandbox Code Playgroud)

'start'和'end'将包含日期的值.如果我希望这些值作为输入以便以后在我的项目中使用编码,例如保存到数据库中,我该如何调用它们?

Raz*_*aul 61

$('#IDOfDateRangePicker').data('daterangepicker').startDate;
$('#IDOfDateRangePicker').data('daterangepicker').endDate;
Run Code Online (Sandbox Code Playgroud)

  • 这仅返回对象。正如“@Erdogan”所解释的,如果您想获得准确的值,请使用“.endDate.format('YYYY-MM-DD');”。 (3认同)

Jac*_*man 31

给你的按钮一个id

<button type="button" id="saveBtn" class="btn btn-primary" data-dismiss="modal">Save changes</button>
Run Code Online (Sandbox Code Playgroud)

将startDate和endDate变量添加到脚本中

var startDate;
var endDate;
Run Code Online (Sandbox Code Playgroud)

在daterangepicker回调中设置这些变量

startDate = start;
endDate = end;
Run Code Online (Sandbox Code Playgroud)

连接$(document).ready函数中该按钮的click事件

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

完整的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>  
Run Code Online (Sandbox Code Playgroud)


Cha*_*ehn 18

您必须检索数据对象:

var startDate = $('#reportrange').data('daterangepicker').startDate._d;
var endDate = $('#reportrange').data('daterangepicker').endDate._d;
Run Code Online (Sandbox Code Playgroud)

请注意最后的_d请求以获取实际的javascript日期对象.

此外,如果data对象是永远undefined那么它可能是bootstrap.js重新实例化的结果.这发生在我的MVC页面上,我忘了用我的脚本包围:

@region scripts {

}
Run Code Online (Sandbox Code Playgroud)


Erd*_*gan 16

var endDate=  $("#IDOfDateRangePicker").data('daterangepicker').endDate.format('YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)

或其他格式;

.endDate.format('YYYY-MM-DD'); 

.endDate.format('D MM YYYY');

.endDate.format('D MMMM YYYY');
Run Code Online (Sandbox Code Playgroud)


Dea*_*ano 5

daterangepicker startDate 和 endDate 返回矩对象而不是 Javascript Date 对象。

以下是将 moment 对象转换为 date 对象的方法:

let startDate = moment($('#selector').data('daterangepicker').startDate).toDate();
let endDate = moment($('#selector').data('daterangepicker').endDate).toDate();
Run Code Online (Sandbox Code Playgroud)