Je suis à la recherche de quelque chose de très simple pour moi mais je ne l'ai pas trouvé ici et dans les documentations bootstrap datetimepicker aussi.Existe-t-il un moyen de définir maxDate ou minDate avec une fonction dans bootstrap datapicker?
L'idée est très simple. J'ai deux champs datetime qui auront actuellement des valeurs à la page_load récupérée du serveur.
Maintenant je veux m'assurer que le maxDate de la première date est la deuxième valeur de date et le minDate de la deuxième date est la date du premier champ.
Voici mon code:
$(document).ready(function() {
$('[id^="datetimepickerStartDate"]').datetimepicker({
useCurrent: false,
format: applicationDateTimeFormat,
ignoreReadonly: true,
//maxDate: function() {
// var id = $(this).attr('id');
// var str = id.split("_");
// if (str.length <= 1) {
// var secondDateTimePicker1 = $('#datetimepickerFinishDate').data("DateTimePicker").date();
// if (secondDateTimePicker1.length) {
// return secondDateTimePicker1;
// }
// return null;
// } else {
// var secondDateTimePicker2 = $("#datetimepickerFinishDate_" + str[1]).data("DateTimePicker").date();
// if (secondDateTimePicker2.length) {
// return secondDateTimePicker2;
// }
// return null;
// }
//},
locale: locale
});
$('[id^="datetimepickerFinishDate"]').datetimepicker({
useCurrent: false,
format: applicationDateTimeFormat,
ignoreReadonly: true,
//minDate: function() {
// var id = $(this).attr('id');
// var str = id.split("_");
// if (str.length <= 1) {
// var secondDateTimePicker1 = $('#datetimepickerStartDate').data("DateTimePicker").date();
// if (secondDateTimePicker1.length) {
// return secondDateTimePicker1;
// }
// return null;
// } else {
// var secondDateTimePicker2 = $("#datetimepickerStartDate_" + str[1]).data("DateTimePicker").date();
// if (secondDateTimePicker2.length) {
// return secondDateTimePicker2;
// }
// return null;
// }
//},
//minDate: new Date().setHours(0, 0, 0, 0),
locale: locale
});
$('[id^="datetimepickerStartDate"]')
.on("dp.change",
function (e) {
var id = $(this).attr('id');
var str = id.split("_");
if (str.length <= 1) {
$('#datetimepickerFinishDate').data("DateTimePicker").minDate(e.date);
} else {
$("#datetimepickerFinishDate_" + str[1]).data("DateTimePicker").minDate(e.date);
$(id).datetimepicker('hide');
}
});
$('[id^="datetimepickerFinishDate"]')
.on("dp.change",
function (e) {
var id = $(this).attr('id');
var str = id.split("_");
if (str.length <= 1) {
$('#datetimepickerStartDate').data("DateTimePicker").maxDate(e.date);
} else {
$("#datetimepickerStartDate_" + str[1]).data("DateTimePicker").maxDate(e.date);
$(id).datetimepicker('hide');
}
$(id).datetimepicker('hide');
});
});
Son beaucoup de code, mais ce que je cherche est une façon comment puis-je mettre ces règles à la première ouverture du DateTimePicker. Donc, j'ai pensé à exécuter la fonction e sur la propriété maxDate et minDate mais semblait ne pas fonctionner!
Une idée de comment résoudre ce problème?
L'événement dp.change
ne fonctionne que lorsque la date est changée pour la première fois ...