From 5092777d174656722ec3a7c057902868dfc3fc2e Mon Sep 17 00:00:00 2001 From: Sergio Crisostomo Date: Wed, 31 Jan 2018 13:30:01 +0100 Subject: [PATCH] Fix sort of date arrays --- src/components/date-picker/panel/Date/date-range.vue | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/date-picker/panel/Date/date-range.vue b/src/components/date-picker/panel/Date/date-range.vue index 5ff78ca1..2305c5a0 100644 --- a/src/components/date-picker/panel/Date/date-range.vue +++ b/src/components/date-picker/panel/Date/date-range.vue @@ -127,6 +127,10 @@ const prefixCls = 'ivu-picker-panel'; const datePrefixCls = 'ivu-date-picker'; + const dateSorter = (a, b) => { + if (!a || !b) return 0; + return a.getTime() - b.getTime(); + }; export default { name: 'RangeDatePickerPanel', @@ -185,14 +189,14 @@ return { left: this.leftPickerTable === tableType ? this.handleRangePick : this.handlePreSelection.bind(this, 'left'), right: this.leftPickerTable === tableType ? this.handleRangePick : this.handlePreSelection.bind(this, 'right'), - } + }; } }, watch: { value(newVal) { const minDate = newVal[0] ? toDate(newVal[0]) : null; const maxDate = newVal[1] ? toDate(newVal[1]) : null; - this.dates = [minDate, maxDate].sort(); + this.dates = [minDate, maxDate].sort(dateSorter); this.rangeState = { from: this.dates[0], @@ -308,7 +312,7 @@ }, handleRangePick (val) { if (this.rangeState.selecting || this.currentView === 'time'){ - const [minDate, maxDate] = [this.rangeState.from, val].sort((a, b) => a - b); + const [minDate, maxDate] = [this.rangeState.from, val].sort(dateSorter); this.dates = [minDate, maxDate]; if (this.currentView === 'time'){ this.dates = val;