簡體   English   中英

如何在 Bootstrap DateTimePicker 上允許 maxDate 和 minDate 相等?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM