Ich habe zwei Kendo Timepicker erhalten ignoriert: from
und to
Telerik Kendo Timepicker Min/Max-Einstellung
Was ich versuche zu erreichen, JavaScript verwenden, um den Bereich der Dropdown-Liste Optionen dieser TimePickers zu ändern. Das Intervall beider TimePickers beträgt 30 Minuten von 00:00 bis 23:30 Uhr.
Zum Beispiel, wenn man from
bis 14:30 wählt, dann sind die Optionen, wenn to
geöffnet ist, mindestens 14:30 Uhr. Und falls man to
bis 20:00 Uhr zu wählen, dann ist die maximale Möglichkeit from
20:00
ist ich meinen Code und alles geschrieben haben außer in Ordnung scheint, wenn beide from
und to
die letzte Option wählen (23.30), das erwartete Verhalten ist die Optionen to
ist nur 23:30 selbst. In Wirklichkeit sind jedoch die Optionen to
die gesamte Zeitspanne von 30 Minuten, beginnend von 23:30 bis 23:00 Uhr (dh 23:30, 00:00, 00:30, ... 23:00).
ich habe viele andere „combinbations“ versucht, die sowohl auf 00:00 gesetzt, die alle das richtige Verhalten zeigt, außer diesem Fall. Ich frage mich, ob es sich um einen bekannten Fehler der Telerik-Steuerung handelt oder ob irgendetwas in meinem Code falsch ist? Wie kann ich das erwartete Verhalten implementieren?
var $start = $startSel.data("kendoDateTimePicker");
var $end = $endSel.data("kendoDateTimePicker");
var start = $startSel.val() == "" ? null : $start.value();
var end = $endSel.val() == "" ? null : $end.value();
if (start != null) {
$end.min(comLib.ceilTo30Minute(start));
} else {
$end.min(new Date(1900, 0, 1));
$end.max(new Date(2099, 11, 31));
}
if (end != null) {
$start.max(comLib.floorTo30Minute(end));
} else {
$start.min(new Date(1900, 0, 1));
$start.max(new Date(2099, 11, 31));
}
///////////////////// in comLib
function ceilTo30Minute (dateTime) {
if (dateTime == null)
return null;
var min = dateTime.getMinutes() % 30;
if (min != 0)
{
dateTime = publicAccess.addTime(dateTime, 0, -min);
dateTime = publicAccess.addTime(dateTime, 0, 30);
}
return dateTime;
};
function floorTo30Minute(dateTime) {
if (dateTime == null)
return null;
var min = dateTime.getMinutes() % 30;
if (min != 0) {
dateTime = publicAccess.addTime(dateTime, 0, -min);
}
return dateTime;
};