@baiwusanyu/utils-date
Advanced tools
+11
-7
@@ -41,3 +41,5 @@ "use strict"; | ||
| // ../packages/date/src/date.ts | ||
| var import_moment = __toESM(require("moment"), 1); | ||
| var import_dayjs = __toESM(require("dayjs"), 1); | ||
| var import_utc = __toESM(require("dayjs/plugin/utc"), 1); | ||
| var import_duration = __toESM(require("dayjs/plugin/duration"), 1); | ||
| function setZeroDate(num) { | ||
@@ -47,8 +49,9 @@ return num < 10 ? `0${num}` : `${num}`; | ||
| function getLastDay(month, year = (/* @__PURE__ */ new Date()).getFullYear(), isFull = false) { | ||
| const m = (0, import_moment.default)(`${year}-${month}`, "YYYY-MM").endOf("month"); | ||
| const m = (0, import_dayjs.default)(`${year}-${month}`, "YYYY-MM").endOf("month"); | ||
| return isFull ? m.format("YYYY-MM-DD") : new Date(year, month, 0).getDate(); | ||
| } | ||
| function formatDate(time, format = "YYYY-MM-DD HH:mm:ss") { | ||
| const dateObj = (0, import_moment.default)(time); | ||
| if (dateObj.utcOffset() !== (0, import_moment.default)().utcOffset()) | ||
| import_dayjs.default.extend(import_utc.default); | ||
| const dateObj = (0, import_dayjs.default)(time); | ||
| if (dateObj.utcOffset() !== (0, import_dayjs.default)().utcOffset()) | ||
| dateObj.utcOffset("+08:00"); | ||
@@ -58,5 +61,6 @@ return dateObj.format(format); | ||
| function relativeTime(rTime, cTime, isBefore = true, unit = "hour", lang = "zh-cn") { | ||
| const currentTime = (0, import_moment.default)(cTime); | ||
| const relativeTime2 = (0, import_moment.default)(rTime); | ||
| const diff = import_moment.default.duration( | ||
| import_dayjs.default.extend(import_duration.default); | ||
| const currentTime = (0, import_dayjs.default)(cTime); | ||
| const relativeTime2 = (0, import_dayjs.default)(rTime); | ||
| const diff = import_dayjs.default.duration( | ||
| isBefore ? currentTime.diff(relativeTime2) : relativeTime2.diff(currentTime) | ||
@@ -63,0 +67,0 @@ ); |
+2
-2
@@ -1,2 +0,2 @@ | ||
| import { unitOfTime } from 'moment'; | ||
| import { OpUnitType } from 'dayjs'; | ||
@@ -30,4 +30,4 @@ /** | ||
| */ | ||
| declare function relativeTime(rTime: string, cTime: string, isBefore?: boolean, unit?: unitOfTime.StartOf, lang?: string): string; | ||
| declare function relativeTime(rTime: string, cTime: string, isBefore?: boolean, unit?: OpUnitType, lang?: string): string; | ||
| export { formatDate, getLastDay, relativeTime, setZeroDate }; |
+11
-7
| // ../packages/date/src/date.ts | ||
| import moment from "moment"; | ||
| import dayjs from "dayjs"; | ||
| import utc from "dayjs/plugin/utc"; | ||
| import duration from "dayjs/plugin/duration"; | ||
| function setZeroDate(num) { | ||
@@ -7,8 +9,9 @@ return num < 10 ? `0${num}` : `${num}`; | ||
| function getLastDay(month, year = (/* @__PURE__ */ new Date()).getFullYear(), isFull = false) { | ||
| const m = moment(`${year}-${month}`, "YYYY-MM").endOf("month"); | ||
| const m = dayjs(`${year}-${month}`, "YYYY-MM").endOf("month"); | ||
| return isFull ? m.format("YYYY-MM-DD") : new Date(year, month, 0).getDate(); | ||
| } | ||
| function formatDate(time, format = "YYYY-MM-DD HH:mm:ss") { | ||
| const dateObj = moment(time); | ||
| if (dateObj.utcOffset() !== moment().utcOffset()) | ||
| dayjs.extend(utc); | ||
| const dateObj = dayjs(time); | ||
| if (dateObj.utcOffset() !== dayjs().utcOffset()) | ||
| dateObj.utcOffset("+08:00"); | ||
@@ -18,5 +21,6 @@ return dateObj.format(format); | ||
| function relativeTime(rTime, cTime, isBefore = true, unit = "hour", lang = "zh-cn") { | ||
| const currentTime = moment(cTime); | ||
| const relativeTime2 = moment(rTime); | ||
| const diff = moment.duration( | ||
| dayjs.extend(duration); | ||
| const currentTime = dayjs(cTime); | ||
| const relativeTime2 = dayjs(rTime); | ||
| const diff = dayjs.duration( | ||
| isBefore ? currentTime.diff(relativeTime2) : relativeTime2.diff(currentTime) | ||
@@ -23,0 +27,0 @@ ); |
+4
-6
@@ -6,4 +6,3 @@ { | ||
| "type": "module", | ||
| "version": "1.0.18", | ||
| "packageManager": "pnpm@7.33.1", | ||
| "version": "1.1.0", | ||
| "keywords": [ | ||
@@ -52,11 +51,10 @@ "typescript", | ||
| "ansi-colors": "^4.1.3", | ||
| "moment": "^2.29.4" | ||
| "dayjs": "^1.11.13" | ||
| }, | ||
| "dependencies": { | ||
| "ansi-colors": "^4.1.3", | ||
| "moment": "^2.29.4" | ||
| "dayjs": "^1.11.13" | ||
| }, | ||
| "devDependencies": { | ||
| "@types/ansi-colors": "^3.2.2", | ||
| "@types/moment": "^2.13.0" | ||
| "@types/ansi-colors": "^3.2.6" | ||
| }, | ||
@@ -63,0 +61,0 @@ "scripts": { |
-114
| // ../packages/date/src/date.ts | ||
| import moment from "moment"; | ||
| function setZeroDate(num) { | ||
| return num < 10 ? `0${num}` : `${num}`; | ||
| } | ||
| function getLastDay(month, year = (/* @__PURE__ */ new Date()).getFullYear(), isFull = false) { | ||
| const m = moment(`${year}-${month}`, "YYYY-MM").endOf("month"); | ||
| return isFull ? m.format("YYYY-MM-DD") : new Date(year, month, 0).getDate(); | ||
| } | ||
| function formatDate(time, format = "YYYY-MM-DD HH:mm:ss") { | ||
| const dateObj = moment(time); | ||
| if (dateObj.utcOffset() !== moment().utcOffset()) | ||
| dateObj.utcOffset("+08:00"); | ||
| return dateObj.format(format); | ||
| } | ||
| function relativeTime(rTime, cTime, isBefore = true, unit = "hour", lang = "zh-cn") { | ||
| const currentTime = moment(cTime); | ||
| const relativeTime2 = moment(rTime); | ||
| const diff = moment.duration( | ||
| isBefore ? currentTime.diff(relativeTime2) : relativeTime2.diff(currentTime) | ||
| ); | ||
| let res = ""; | ||
| const handleDiff = (unit2) => { | ||
| let finalRes = ""; | ||
| let diffRes = 0; | ||
| switch (unit2) { | ||
| case "hour": | ||
| diffRes = Number(diff.asHours().toFixed(0)); | ||
| if (diffRes === 0) { | ||
| unit2 = "minute"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| if (Math.abs(diffRes) >= 24) { | ||
| unit2 = "day"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| finalRes = `${Math.abs(diffRes)} ${lang === "zh-cn" ? "\u5C0F\u65F6" : "hours"}`; | ||
| break; | ||
| case "day": | ||
| diffRes = Math.abs(Number(diff.asDays().toFixed(0))); | ||
| if (diffRes === 0) { | ||
| unit2 = "hour"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| if (Math.abs(diffRes) >= 7) { | ||
| unit2 = "week"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| finalRes = `${Math.abs(diffRes)} ${lang === "zh-cn" ? "\u5929" : "days"}`; | ||
| break; | ||
| case "week": | ||
| diffRes = Math.abs(Number(diff.asWeeks().toFixed(0))); | ||
| if (diffRes === 0) { | ||
| unit2 = "day"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| if (Math.abs(diffRes) >= 28) { | ||
| unit2 = "month"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| finalRes = `${Math.abs(diffRes)} ${lang === "zh-cn" ? "\u5468" : "weeks"}`; | ||
| break; | ||
| case "minute": | ||
| diffRes = Math.abs(Number(diff.asMinutes().toFixed(0))); | ||
| if (diffRes === 0) { | ||
| unit2 = "second"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| if (Math.abs(diffRes) >= 60) { | ||
| unit2 = "hour"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| finalRes = `${Math.abs(diffRes)} ${lang === "zh-cn" ? "\u5206\u949F" : "minutes"}`; | ||
| break; | ||
| case "second": | ||
| diffRes = Math.abs(Number(diff.asSeconds().toFixed(0))); | ||
| finalRes = `${Math.abs(diffRes)} ${lang === "zh-cn" ? "\u79D2" : "seconds"}`; | ||
| break; | ||
| case "month": | ||
| diffRes = Math.abs(Number(diff.asMonths().toFixed(0))); | ||
| if (diffRes === 0) { | ||
| unit2 = "week"; | ||
| finalRes = handleDiff(unit2); | ||
| break; | ||
| } | ||
| if (Math.abs(diffRes) >= 12) { | ||
| finalRes = cTime; | ||
| break; | ||
| } | ||
| finalRes = `${Math.abs(diffRes)} ${lang === "zh-cn" ? "\u6708" : "months"}`; | ||
| break; | ||
| default: | ||
| break; | ||
| } | ||
| return finalRes; | ||
| }; | ||
| res = handleDiff(unit); | ||
| res = `${res}${isBefore ? lang === "zh-cn" ? "\u524D" : " ago" : lang === "zh-cn" ? "\u540E" : " after"}`; | ||
| return res; | ||
| } | ||
| export { | ||
| formatDate, | ||
| getLastDay, | ||
| relativeTime, | ||
| setZeroDate | ||
| }; |
1
-50%14818
-18.35%6
-14.29%304
-25.85%+ Added
+ Added
- Removed
- Removed