From 15d1b813e7faf5a1f9d1ea6fc673fd27ac49d8b1 Mon Sep 17 00:00:00 2001 From: iamkun Date: Mon, 9 Dec 2019 02:43:46 +0800 Subject: [PATCH] fix: Update locale (zh-cn) meridiem (#735) --- src/locale/zh-cn.js | 16 +++++++++++++++- test/locale/zh-cn.test.js | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 test/locale/zh-cn.test.js diff --git a/src/locale/zh-cn.js b/src/locale/zh-cn.js index 3e01f2382..f15951751 100644 --- a/src/locale/zh-cn.js +++ b/src/locale/zh-cn.js @@ -43,7 +43,21 @@ const locale = { y: '1 年', yy: '%d 年' }, - meridiem: hour => (hour < 12 ? '上午' : '下午') + meridiem: (hour, minute) => { + const hm = (hour * 100) + minute + if (hm < 600) { + return '凌晨' + } else if (hm < 900) { + return '早上' + } else if (hm < 1130) { + return '上午' + } else if (hm < 1230) { + return '中午' + } else if (hm < 1800) { + return '下午' + } + return '晚上' + } } dayjs.locale(locale, null, true) diff --git a/test/locale/zh-cn.test.js b/test/locale/zh-cn.test.js new file mode 100644 index 000000000..7bde81e67 --- /dev/null +++ b/test/locale/zh-cn.test.js @@ -0,0 +1,21 @@ +import moment from 'moment' +import MockDate from 'mockdate' +import dayjs from '../../src' +import '../../src/locale/zh-cn' + +beforeEach(() => { + MockDate.set(new Date()) +}) + +afterEach(() => { + MockDate.reset() +}) + +it('Meridiem', () => { + const dayjsObj = dayjs().locale('zh-cn') + const momentObj = moment().locale('zh-cn') + for (let i = 0; i <= 24; i += 1) { + expect(dayjsObj.add(i, 'hour').format('A')) + .toEqual(momentObj.clone().add(i, 'hour').format('A')) + } +})