Preserve time difference when changing start date (fixes #596)

This commit is contained in:
Mike Sheldon
2025-03-20 21:24:52 +00:00
committed by setop
parent fce01fd387
commit bfe00e5bd7

View File

@@ -1322,9 +1322,18 @@ So you cannot check consistensy in real time, only onBlur because of the moment
const consistencyBeginsOnBeforeEndsOn = () => { const consistencyBeginsOnBeforeEndsOn = () => {
// Update endsOn to make sure endsOn is later than beginsOn // Update endsOn to make sure endsOn is later than beginsOn
if (endsOn.value && beginsOn.value && endsOn.value <= beginsOn.value) { if (endsOn.value && beginsOn.value && endsOn.value <= beginsOn.value) {
const newEndsOn = new Date(beginsOn.value); // If the start date has changed, preserve the time difference
newEndsOn.setUTCHours(beginsOn.value.getUTCHours() + 1); const newEndsOn = new Date(endsOn.value);
newEndsOn.setDate(beginsOn.value.getDate());
newEndsOn.setMonth(beginsOn.value.getMonth());
newEndsOn.setFullYear(beginsOn.value.getFullYear());
endsOn.value = newEndsOn; endsOn.value = newEndsOn;
// If the end time is still earlier than the start time set a 1 hour difference
if (endsOn.value <= beginsOn.value) {
const newEndsOn2 = new Date(beginsOn.value);
newEndsOn2.setUTCHours(beginsOn.value.getUTCHours() + 1);
endsOn.value = newEndsOn2;
}
} }
}; };