简体   繁体   English

DaterangePicker如何获取预定义日期范围的值

[英]Daterangepicker how can i get the value of predefined date range

I would like to get the value of my predefined daterange of my daterangepicker 我想获得我的我的预定义的日期范围的值daterangepicker

I try to use .val() and .text() but not working please see code below 我尝试使用.val().text()但无法正常工作,请参见下面的代码

 $(document).ready(function() { console.log($('#reportrange').find(":selected").val()); }); $(function() { var start = moment().subtract(6, 'days'); var end = moment(); function cb(start, end) { $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); } $('#reportrange').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); cb(start, end); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script> <link href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" rel="stylesheet" /> <div class="form-group"> <label for="sel1">Date:</label> <div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc;"> <i class="fa fa-calendar"></i>&nbsp; <span></span> </div> </div> 

First you fill date on page load than you will get it. 首先,您要在页面加载中填写日期,然后才能获得日期。 Try this:- 尝试这个:-

$(document).ready(function() {

          var start = moment().subtract(6, 'days');
          var end = moment();

          function cb(start, end) {
            $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
          }

          $('#reportrange').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);

          cb(start, end);


        //get date_range  
        var date = $('#reportrange > span').text();
        alert(date);

});

The reason, why you getting undefined is $(document).ready and $ (function() { do run at same time and because of that, your daterangepicker may not be properly declared at that time. So, if you want to get the values, you can have them in callback function. 之所以得到未定义的原因是$(document).ready和$ (function() {确实同时运行,因此,您的daterangepicker可能在那时未正确声明。因此,如果要获取值,您可以在回调函数中使用它们。

Matter of fact, 事实上,

daterangepicker startDate and endDate returns moment objects not Javascript Date objects. daterangepicker startDate和endDate返回力矩对象,而不是Javascript Date对象。

 $(function() { var start = moment().subtract(6, 'days'); var end = moment(); var lstart,lend; function cb(start, end) { $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); lstart = moment($('#reportrange').data('daterangepicker').startDate).toDate(), lend = moment($('#reportrange').data('daterangepicker').endDate).toDate(); console.log(lstart,lend) } $('#reportrange').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); cb(start, end); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"> </script> <script src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"> </script> <link href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" rel="stylesheet"/> <div class="form-group"> <label for="sel1">Date:</label> <div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc;"> <i class="fa fa-calendar"></i>&nbsp; <span></span> </div> </div> 

Now, From moment, you can get date in any format. 现在,从一开始,您就可以获取任何格式的日期。 Here is the fiddlelink 这是fiddlelink

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 daterangepicker 范围内获取所选日期的日期 - How can get date in daterangepicker ranges selected date 如何修复 daterangepicker 中的自定义日期范围问题? - How to fix custom date range issue in daterangepicker? 如何从 daterangepicker 中获取选定的值? - How do i get selected Value from daterangepicker? 如何获得DateRangePicker以便在单击时呈现日历? - How can I get DateRangePicker to render calendars on click? 如何将在daterangepicker中选择的日期范围传递给变量或返回到javascript中的输入文本框? - How do I pass the date range selected in the daterangepicker to a variable or back to my input textbox in javascript? daterangepicker如何获取值并按1day以在输入文本上显示日期 - daterangepicker how to get value and push 1day to show date on input text 在 daterangepicker 中如何动态设置 minDate? - in daterangepicker how can i set minDate Dynamically? 如何获取日期范围为 boolean 且不等于的 Firestore 数据? - How can I get the firestore data with a date range, boolean, and not equals? 如何使用 dayjs 获取日期范围? - How can I get date range using dayjs? 如何获取日期范围之间的客户列表? - How can i get list of customers between a date range?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM