From a25fd4b67fe1dfc630016a690e780fd31ad98f46 Mon Sep 17 00:00:00 2001 From: Ethan Shen Date: Sun, 10 Apr 2022 23:40:35 +0800 Subject: [PATCH] fix(utils): wrong date with same weekday in parse-date (#9506) --- lib/utils/parse-date.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/utils/parse-date.js b/lib/utils/parse-date.js index e729752c4f..f19cf1fbbd 100644 --- a/lib/utils/parse-date.js +++ b/lib/utils/parse-date.js @@ -1,6 +1,7 @@ const dayjs = require('dayjs'); dayjs.extend(require('dayjs/plugin/customParseFormat')); dayjs.extend(require('dayjs/plugin/duration')); +dayjs.extend(require('dayjs/plugin/isSameOrBefore')); dayjs.extend(require('dayjs/plugin/weekday')); const words = [ @@ -17,31 +18,31 @@ const words = [ regExp: /^(?:前天|(?:the)?d(?:ay)?b(?:eforeyesterda)?y)(.*)/, }, { - startAt: dayjs().isBefore(dayjs().weekday(1)) ? dayjs().weekday(1).subtract(1, 'week') : dayjs().weekday(1), + startAt: dayjs().isSameOrBefore(dayjs().weekday(1)) ? dayjs().weekday(1).subtract(1, 'week') : dayjs().weekday(1), regExp: /^(?:周|星期)一(.*)/, }, { - startAt: dayjs().isBefore(dayjs().weekday(2)) ? dayjs().weekday(2).subtract(1, 'week') : dayjs().weekday(2), + startAt: dayjs().isSameOrBefore(dayjs().weekday(2)) ? dayjs().weekday(2).subtract(1, 'week') : dayjs().weekday(2), regExp: /^(?:周|星期)二(.*)/, }, { - startAt: dayjs().isBefore(dayjs().weekday(3)) ? dayjs().weekday(3).subtract(1, 'week') : dayjs().weekday(3), + startAt: dayjs().isSameOrBefore(dayjs().weekday(3)) ? dayjs().weekday(3).subtract(1, 'week') : dayjs().weekday(3), regExp: /^(?:周|星期)三(.*)/, }, { - startAt: dayjs().isBefore(dayjs().weekday(4)) ? dayjs().weekday(4).subtract(1, 'week') : dayjs().weekday(4), + startAt: dayjs().isSameOrBefore(dayjs().weekday(4)) ? dayjs().weekday(4).subtract(1, 'week') : dayjs().weekday(4), regExp: /^(?:周|星期)四(.*)/, }, { - startAt: dayjs().isBefore(dayjs().weekday(5)) ? dayjs().weekday(5).subtract(1, 'week') : dayjs().weekday(5), + startAt: dayjs().isSameOrBefore(dayjs().weekday(5)) ? dayjs().weekday(5).subtract(1, 'week') : dayjs().weekday(5), regExp: /^(?:周|星期)五(.*)/, }, { - startAt: dayjs().isBefore(dayjs().weekday(6)) ? dayjs().weekday(6).subtract(1, 'week') : dayjs().weekday(6), + startAt: dayjs().isSameOrBefore(dayjs().weekday(6)) ? dayjs().weekday(6).subtract(1, 'week') : dayjs().weekday(6), regExp: /^(?:周|星期)六(.*)/, }, { - startAt: dayjs().isBefore(dayjs().weekday(7)) ? dayjs().weekday(7).subtract(1, 'week') : dayjs().weekday(7), + startAt: dayjs().isSameOrBefore(dayjs().weekday(7)) ? dayjs().weekday(7).subtract(1, 'week') : dayjs().weekday(7), regExp: /^(?:周|星期)(?:日|天)(.*)/, }, {