[英]How to fix custom date range issue in daterangepicker?
if($selected_date_interval == 'Yesterday'){
$_SESSION['start_date_by_interval'] = "moment().subtract(1, 'days')";
$_SESSION['end_date_by_interval'] = "moment().subtract(1, 'days')";
}
elseif ($selected_date_interval == 'Today'){
$_SESSION['start_date_by_interval'] = "moment()";
$_SESSION['end_date_by_interval'] = "moment()";
}
elseif($selected_date_interval == 'Last 7 Days'){
$_SESSION['start_date_by_interval'] = "moment().subtract(6, 'days')";
$_SESSION['end_date_by_interval'] = "moment()";
}
elseif ($selected_date_interval == 'Last 30 Days')
{
$_SESSION['start_date_by_interval'] = "moment().subtract(30, 'days')";
$_SESSION['end_date_by_interval'] = "moment()";
}
elseif ($selected_date_interval == 'This Month'){
$_SESSION['start_date_by_interval'] = "moment().startOf('month')";
$_SESSION['end_date_by_interval'] = "moment().endOf('month')";
}
elseif ($selected_date_interval == 'Last Month'){
$_SESSION['start_date_by_interval'] = "moment().subtract(1, 'month').startOf('month')";
$_SESSION['end_date_by_interval'] = "moment().subtract(1, 'month').endOf('month')";
}else{
$_SESSION['start_date_by_interval'] = "moment($start_date,'MMMM D, YYYY')";
$_SESSION['end_date_by_interval'] = "moment($end_date,'MMMM D, YYYY')";
}
我的所有類型的日期范圍都運行良好,而不是自定義日期。 每當我選擇自定義日期時,日期顯示不正確。 所以對於自定義日期,我在最后一個 else 條件中傳遞了上面的日期類型和格式。 我做錯了什么請告訴我。
注意 - 我正在使用http://daterangepicker.com庫。
這是我的日期選擇器 javascript 代碼。
$('#reportrange').daterangepicker({
"showDropdowns": true,
"autoApply": false,
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(30, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
// 'Custom': [moment(end,'YYYY-MM-DD'), moment(start,'YYYY-MM-DD')]
// 'Custom Range': [end, start]
},
startDate: start,
endDate: end,
"locale": {
"format": "YYYY-MM-DD",
"separator": "-",
"applyLabel": "Apply",
"cancelLabel": "Cancel",
"fromLabel": "From",
"toLabel": "To",
"customRangeLabel": "Custom",
"weekLabel": "W",
"daysOfWeek": [
"Su",
"Mo",
"Tu",
"We",
"Th",
"Fr",
"Sa"
],
"monthNames": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"firstDay": 1
},
opens: 'left'
}, cb);
cb(start, end);
});
我不確定你是否讓它工作,但我也在尋找同樣問題的解決方案並解決了這個問題。
解決方法如下:
在您的代碼中,您要定義: 'Custom Range': [end, start]
而不是這個,您必須以[moment().subtract(30, 'days'), moment()]
格式提供開始和結束日期。 所以你必須找到天數的差異並提供它來代替'moment().subtract(30, 'days')'
。 對我來說,這個解決方案工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.