diff --git a/resources/vue/components/ConsultationCreator.vue b/resources/vue/components/ConsultationCreator.vue index 73c3cb1da499a0fdda59e3694cdc279b1a7e9b6e..487b9b979201dd571ed5d739a5ec80b0919bd623 100644 --- a/resources/vue/components/ConsultationCreator.vue +++ b/resources/vue/components/ConsultationCreator.vue @@ -412,6 +412,25 @@ export default { event.preventDefault(); } }, + compareDates(date0, date1, operator = '=', precision = 'day') { + const mapping = { + '<': 'isBefore', + '<=': 'isSameOrBefore', + '=': 'isSame', + '>=': 'isSameOrAfter', + '>': 'isAfter', + }; + + if (mapping[operator] === undefined) { + throw new Error(`Unsupported operator '${operator}'`); + } + + const compareDate0 = moment(date0); + const compareDate1 = moment(date1); + + const method = mapping[operator]; + return compareDate0[method](compareDate1, precision); + }, validateInputs(event) { const errors = []; @@ -419,7 +438,7 @@ export default { errors.push(this.$gettext('Die Endzeit liegt vor der Startzeit!')); } - if (this.interval > 0 && this.startDate > this.endDate) { + if (this.interval > 0 && this.compareDates(this.startDate, this.endDate, '>')) { errors.push(this.$gettext('Das Enddatum liegt vor dem Startdatum!')); } diff --git a/resources/vue/components/Datepicker.vue b/resources/vue/components/Datepicker.vue index 5c2c0f75cb7419c566cb2d2ad0064750e197b411..65463a947f8c4a2997ade5981e63f1e9cc9bf300 100644 --- a/resources/vue/components/Datepicker.vue +++ b/resources/vue/components/Datepicker.vue @@ -76,7 +76,7 @@ export default { return this.convertInputToNativeDate(this.value).toISOString(); } - return this.convertInputToNativeDate(this.value).toLocaleDateString(); + return this.convertInputToNativeDate(this.value).toLocaleDateString(String.locale); } }, methods: {