HTML
<div class="row no-gutters mb-1">
<div class="col-6">
<div>
<label for="start_date" class="pl-0">Start Date/Time</label>
<div class="input-group date" >
<input type='text' class="datetimepicker form-control" name="start_date" id="start_date" data-target="#start_date" data-toggle="datetimepicker" data-type="datetimepicker" />
<div class="input-group-addon input-group-append" onclick="$('#start_date').click()">
<div class="input-group-text"><i class="far fa-calendar-alt"></i></div>
</div>
</div>
</div>
</div>
<div class="col-6">
<div>
<label for="end_date" class="pl-0">End Date/Time</label>
<div class="input-group date" >
<input type='text' class="datetimepicker form-control" name="end_date" id="end_date" data-toggle="datetimepicker" data-target="#end_date" data-type="datetimepicker" />
<div class="input-group-addon input-group-append" onclick="$('#end_date').click()">
<div class="input-group-text"><i class="far fa-calendar-alt"></i></div>
</div>
</div>
</div>
</div>
</div>
Javascript
const dateFormat = "MM/DD/YYYY";
const endDateSelector = $("#end_date");
let lastPageNum = 0;
let previousPageNum = 1;
$.extend($.fn.datetimepicker.Constructor.Default, {
icons: {
time: 'far fa-clock',
date: 'far fa-calendar',
up: 'fas fa-arrow-up',
down: 'fas fa-arrow-down',
previous: 'fas fa-chevron-left',
next: 'fas fa-chevron-right',
today: 'far fa-calendar-check',
clear: 'fas fa-trash',
close: 'fas fa-times'
}
});
function hideDateTimePicker() {
$("#" + this.id).datetimepicker("hide");
}
$('#start_date').datetimepicker({
format: "MM/DD/YYYY hh:mm A",
keepOpen: false,
useCurrent: false,
keepInvalid: true,
useStrict: true
});
endDateSelector.datetimepicker({
format: "MM/DD/YYYY hh:mm A",
keepOpen: false,
useCurrent: false,
keepInvalid: true,
useStrict: true
});
$("#start_date, #end_date").on("focusout", hideDateTimePicker);
Проблема
Теперь мне нужно убедиться, что start_date
и end_date
не инициализируются, но в первый раз (и только потом) выбирается их дата, start_date
будет иметь время в 00:00, а end_date
будет иметь время в 23:59. Наиболее близким к этому поведению до сих пор было defaultDate: (new Date()).setHours(0, 0, 0, 0)
, но это фактически инициализирует значение. Я использую Bootstrap 4.3.1 и довольно много искал решение для такой простой функции, как определение времени по умолчанию для datetimepicker или установка его значения.
Если я установил значение для входа start_date
, он будет корректно изменен, но при следующем изменении даты он не запомнит мое изменение и поместит текущее время в качестве значения.
Множество источников на inte rnet предполагали, что что-то вроде $("#start_date").data("DateTimePicker").date(somevalue)
должно работать, но $("#start_date").data("DateTimePicker")
возвращает неопределенное значение. Другие источники утверждали, что что-то вроде $("#start_date").datetimepicker("update", new Date())
должно работать, но я получаю ошибку
Ошибка: нет метода с именем "update"
Итак, как я могу иметь время по умолчанию без инициализации значения?