![](/img/trans.png)
[英]How to set minDate and maxDate for bootstrap datetimepicker on change
[英]How to allow maxDate and minDate to be equal on Bootstrap DateTimePicker?
為了創建報告,我需要能夠選擇相同的開始和結束日期。
我能夠做到這一點,但僅限於我第一次選擇 maxDate 時。
之后,我無法選擇與 maxDate 相同的 minDate 值。
例如:
瀏覽器打開。
我選擇 01/01/2020 作為開始日期 (minDate)。
我選擇 01/01/2020 作為結束日期 (maxDate)。
我將結束日期更改為 02/01/2020。
現在我無法再次選擇“01/01/2020”作為結束日期。
我需要能夠為 minDate 和 maxDate 選擇相同的時刻
我似乎無法在 DateTimePicker 文檔中找到解決方案
我試過在 change 事件上設置一些值:
$(".datetimepickerTo").on("dp.change", function (e) {
$('.datetimepickerFrom').data("DateTimePicker").maxDate(e.date);
});
在 datetimepicker 選擇器上:
$('.datetimepickerTo').datetimepicker({
useCurrent: false
});
原來是日期格式問題。
出於某種原因,在第一次選擇日期時,日期輸出為:
'2020 年 1 月 1 日星期三 16:39:34 GMT-0300 (Horário Padrão de Brasília)'。
其中“16:39:34”是我選擇日期的實際時間。
雖然,在第二次選擇時,輸出是:
'2020 年 1 月 1 日星期三 00:00:00 GMT-0300 (Horário Padrão de Brasília)'
制作兩個不同的日期。
我的方法是將日期格式化為我需要的格式。 使用此功能:
function formatDate(date) {
var months = [
"1", "2", "3",
"4", "5", "6",
"7", "8", "9",
"10", "11", "12"
];
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
return day + '/' + months[monthIndex] + '/' + year;
}
輸出在哪里:
01/01/2020
然后我只需要將格式化的日期傳遞給 minDate() 和 maxDate() 函數:
$(".datetimepickerFrom").datetimepicker().on("dp.change", function (e) {
const formattedDate = formatDate(e.date.toDate())
$('.datetimepickerTo').data("DateTimePicker").minDate(formattedDate);
});
$(".datetimepickerTo").datetimepicker().on("dp.change", function (e) {
const formattedDate = formatDate(e.date.toDate())
$('.datetimepickerFrom').data("DateTimePicker").maxDate(formattedDate);
});
我通過在初始化 datetimepicker 之前設置默認時區解決了這個問題:
moment.tz.setDefault("Europe/Rome")
$('#multi_event_date').datetimepicker({
...
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.