From c46c73623362c8703df3973af4172bd7a2f8017c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E4=BA=9A=E6=98=95?= <1549469775@qq.com> Date: Fri, 7 Mar 2025 09:02:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/browser/src/check/docs/index.md | 2 +- .../core/src/common/padLeftZero/__tests__/index.ts | 4 +++ packages/core/src/date/format/docs/demo.vue | 29 ---------------------- packages/core/src/date/format/docs/index.md | 10 -------- .../date/format/formatDateByFmt/__tests__/index.ts | 14 +++++++++++ .../src/date/format/formatDateByFmt/docs/demo.vue | 29 ++++++++++++++++++++++ .../src/date/format/formatDateByFmt/docs/index.md | 10 ++++++++ .../core/src/date/format/formatDateByFmt/index.ts | 21 ++++++++++++++++ packages/core/src/date/format/index.ts | 22 +--------------- 9 files changed, 80 insertions(+), 61 deletions(-) delete mode 100644 packages/core/src/date/format/docs/demo.vue delete mode 100644 packages/core/src/date/format/docs/index.md create mode 100644 packages/core/src/date/format/formatDateByFmt/__tests__/index.ts create mode 100644 packages/core/src/date/format/formatDateByFmt/docs/demo.vue create mode 100644 packages/core/src/date/format/formatDateByFmt/docs/index.md create mode 100644 packages/core/src/date/format/formatDateByFmt/index.ts diff --git a/packages/browser/src/check/docs/index.md b/packages/browser/src/check/docs/index.md index 76cac30..e3b1613 100644 --- a/packages/browser/src/check/docs/index.md +++ b/packages/browser/src/check/docs/index.md @@ -7,4 +7,4 @@ title: 平台检测 ## Demo - \ No newline at end of file + \ No newline at end of file diff --git a/packages/core/src/common/padLeftZero/__tests__/index.ts b/packages/core/src/common/padLeftZero/__tests__/index.ts index 060c503..7669b6f 100644 --- a/packages/core/src/common/padLeftZero/__tests__/index.ts +++ b/packages/core/src/common/padLeftZero/__tests__/index.ts @@ -5,6 +5,10 @@ describe("padLeftZero", async () => { const str = "aa"; expect(padLeftZero(str, 3)).toStrictEqual("0aa"); }); + it("错误", async () => { + const str: any = 11; + expect(padLeftZero(str, 3)).toStrictEqual(11); + }); it("超出长度", async () => { const str = "aaaaaa"; expect(padLeftZero(str, 3)).toStrictEqual("aaaaaa"); diff --git a/packages/core/src/date/format/docs/demo.vue b/packages/core/src/date/format/docs/demo.vue deleted file mode 100644 index 86af7f0..0000000 --- a/packages/core/src/date/format/docs/demo.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - yyyy-MM-dd hh:mm:ss ---> {{ date }} - yyyy-MM-dd ---> {{ date2 }} - hh:mm:ss ---> {{ date3 }} - h:m:s ---> {{ date4 }} - - - - diff --git a/packages/core/src/date/format/docs/index.md b/packages/core/src/date/format/docs/index.md deleted file mode 100644 index f223f6b..0000000 --- a/packages/core/src/date/format/docs/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 格式化 -category: 日期 ---- - -## Demo - - - - diff --git a/packages/core/src/date/format/formatDateByFmt/__tests__/index.ts b/packages/core/src/date/format/formatDateByFmt/__tests__/index.ts new file mode 100644 index 0000000..c1e173b --- /dev/null +++ b/packages/core/src/date/format/formatDateByFmt/__tests__/index.ts @@ -0,0 +1,14 @@ +import { formatDateByFmt } from "@xyx-utils/core"; + +describe("formatDateByFmt", async () => { + it("时间格式化", async () => { + const date = new Date("2025-03-07 08:54:21"); + expect(formatDateByFmt(date, "yyyy-MM-dd hh:mm:ss")).toStrictEqual("2025-03-07 08:54:21"); + }); + it("22", async () => { + const date = new Date("2025-03-07 08:02:01"); + expect(formatDateByFmt(date, "yyyy-MM-dd hh:m:s")).toStrictEqual("2025-03-07 08:2:1"); + const date2 = new Date("2025-03-07 08:12:01"); + expect(formatDateByFmt(date2, "yyyy-MM-dd hh:m:s")).toStrictEqual("2025-03-07 08:12:1"); + }); +}); diff --git a/packages/core/src/date/format/formatDateByFmt/docs/demo.vue b/packages/core/src/date/format/formatDateByFmt/docs/demo.vue new file mode 100644 index 0000000..96de589 --- /dev/null +++ b/packages/core/src/date/format/formatDateByFmt/docs/demo.vue @@ -0,0 +1,29 @@ + + + yyyy-MM-dd hh:mm:ss ---> {{ date }} + yyyy-MM-dd ---> {{ date2 }} + hh:mm:ss ---> {{ date3 }} + h:m:s ---> {{ date4 }} + + + + diff --git a/packages/core/src/date/format/formatDateByFmt/docs/index.md b/packages/core/src/date/format/formatDateByFmt/docs/index.md new file mode 100644 index 0000000..f223f6b --- /dev/null +++ b/packages/core/src/date/format/formatDateByFmt/docs/index.md @@ -0,0 +1,10 @@ +--- +title: 格式化 +category: 日期 +--- + +## Demo + + + + diff --git a/packages/core/src/date/format/formatDateByFmt/index.ts b/packages/core/src/date/format/formatDateByFmt/index.ts new file mode 100644 index 0000000..047a42d --- /dev/null +++ b/packages/core/src/date/format/formatDateByFmt/index.ts @@ -0,0 +1,21 @@ +import { padLeftZero } from "@xyx-utils/core/common/padLeftZero"; + +export function formatDateByFmt(date, fmt) { + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); + } + const o = { + "M+": date.getMonth() + 1, + "d+": date.getDate(), + "h+": date.getHours(), + "m+": date.getMinutes(), + "s+": date.getSeconds(), + }; + for (const k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + const str = o[k] + ""; + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str, 2)); + } + } + return fmt; +} diff --git a/packages/core/src/date/format/index.ts b/packages/core/src/date/format/index.ts index 047a42d..e1af07f 100644 --- a/packages/core/src/date/format/index.ts +++ b/packages/core/src/date/format/index.ts @@ -1,21 +1 @@ -import { padLeftZero } from "@xyx-utils/core/common/padLeftZero"; - -export function formatDateByFmt(date, fmt) { - if (/(y+)/.test(fmt)) { - fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); - } - const o = { - "M+": date.getMonth() + 1, - "d+": date.getDate(), - "h+": date.getHours(), - "m+": date.getMinutes(), - "s+": date.getSeconds(), - }; - for (const k in o) { - if (new RegExp(`(${k})`).test(fmt)) { - const str = o[k] + ""; - fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str, 2)); - } - } - return fmt; -} +export * from "./formatDateByFmt" \ No newline at end of file