[英]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> <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> <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.