hsu-utils 0.0.49 → 0.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -101,12 +101,15 @@ yarn add hsu-utils
101
101
 
102
102
  ### GetDateRangeOptions
103
103
 
104
- | 参数 | 说明 | 类型 | 默认值 | 备注 |
105
- | -------- | --------------------- | ------------------------------------ | ------ | -------------- |
106
- | type | 日期范围类型 | [DateRangeType](#daterangetype) | - | 必填 |
107
- | amount | 数量(用于过去/未来) | number | 0 | - |
108
- | baseDate | 基准日期 | string \| Date \| Dayjs | - | 默认为当前日期 |
109
- | unit | 单位(用于过去/未来) | 'day' \| 'week' \| 'month' \| 'year' | 'day' | - |
104
+ | 参数 | 说明 | 类型 | 默认值 | 备注 |
105
+ | -------- | --------------------- | ------------------------------------ | ------ | ------------------------------ |
106
+ | type | 日期范围类型 | [DateRangeType](#daterangetype) | - | 必填 |
107
+ | amount | 数量(用于过去/未来) | number | 0 | - |
108
+ | baseDate | 基准日期 | string \| Date \| Dayjs | - | 默认为当前日期 |
109
+ | unit | 单位(用于过去/未来) | 'day' \| 'week' \| 'month' \| 'year' | 'day' | - |
110
+ | minDate | 最小时间限制 | string \| Date \| Dayjs | - | 用于过去/未来,限制范围最小值 |
111
+ | maxDate | 最大时间限制 | string \| Date \| Dayjs | - | 用于过去/未来,限制范围最大值 |
112
+ | hasTime | 是否包含时间部分 | boolean | true | 控制返回格式是否包含时间 |
110
113
 
111
114
  ### DateRangeType
112
115
 
@@ -126,11 +129,13 @@ yarn add hsu-utils
126
129
 
127
130
  返回时间段数组,格式根据类型和单位自动匹配:
128
131
 
129
- - `today` / `thisWeek` / `past`(day/week) / `future`(day/week) → `YYYY-MM-DD`
132
+ - `today` / `thisWeek` / `past`(day/week) / `future`(day/week) → `YYYY-MM-DD` (hasTime 为 true 时: `YYYY-MM-DD HH:mm:ss`)
130
133
  - `thisMonth` / `past`(month) / `future`(month) → `YYYY-MM`
131
134
  - `thisQuarter` → `YYYY-[Q]Q` (例如: `2024-Q1`)
132
135
  - `thisYear` / `past`(year) / `future`(year) → `YYYY`
133
136
 
137
+ 注意:当 `hasTime` 为 `true`(默认)时,包含日期部分的格式会自动添加时间部分 `HH:mm:ss`。
138
+
134
139
  ## License
135
140
 
136
141
  MIT
package/dist/hsu-utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * hsu-utils v0.0.48
3
+ * hsu-utils v0.0.49
4
4
  *
5
5
  * some front-end utils
6
6
  *
@@ -172,7 +172,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunc
172
172
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
173
173
 
174
174
  "use strict";
175
- eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar dayjs_1 = __importDefault(__webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\"));\nvar quarterOfYear_1 = __importDefault(__webpack_require__(/*! dayjs/plugin/quarterOfYear */ \"./node_modules/dayjs/plugin/quarterOfYear.js\"));\nvar weekOfYear_1 = __importDefault(__webpack_require__(/*! dayjs/plugin/weekOfYear */ \"./node_modules/dayjs/plugin/weekOfYear.js\"));\ndayjs_1.default.extend(quarterOfYear_1.default);\ndayjs_1.default.extend(weekOfYear_1.default);\nfunction getFormat(type, unit) {\n if (unit === void 0) { unit = 'day'; }\n switch (type) {\n case 'today':\n return 'YYYY-MM-DD';\n case 'thisWeek':\n return 'YYYY-MM-DD';\n case 'thisMonth':\n return 'YYYY-MM';\n case 'thisQuarter':\n return 'YYYY-[Q]Q';\n case 'thisYear':\n return 'YYYY';\n case 'past':\n case 'future':\n default:\n break;\n }\n switch (unit) {\n case 'year':\n return 'YYYY';\n case 'month':\n return 'YYYY-MM';\n case 'week':\n case 'day':\n default:\n return 'YYYY-MM-DD';\n }\n}\nfunction getDateRange(options) {\n var type = options.type, _a = options.amount, amount = _a === void 0 ? 0 : _a, baseDate = options.baseDate, _b = options.unit, unit = _b === void 0 ? 'day' : _b;\n var base = baseDate ? (0, dayjs_1.default)(baseDate) : (0, dayjs_1.default)();\n var minDate;\n var maxDate;\n switch (type) {\n case 'past':\n maxDate = base.endOf(unit);\n minDate = base.subtract(amount, unit).startOf(unit);\n break;\n case 'future':\n minDate = base.startOf(unit);\n maxDate = base.add(amount, unit).endOf(unit);\n break;\n case 'today':\n minDate = base.startOf('day');\n maxDate = base.endOf('day');\n break;\n case 'thisWeek':\n minDate = base.startOf('week');\n maxDate = base.endOf('week');\n break;\n case 'thisMonth':\n minDate = base.startOf('month');\n maxDate = base.endOf('month');\n break;\n case 'thisQuarter':\n minDate = base.startOf('quarter');\n maxDate = base.endOf('quarter');\n break;\n case 'thisYear':\n minDate = base.startOf('year');\n maxDate = base.endOf('year');\n break;\n default:\n throw new Error(\"\\u4E0D\\u652F\\u6301\\u7684\\u7C7B\\u578B: \".concat(type));\n }\n var format = getFormat(type, unit);\n var min = minDate.format(format);\n var max = maxDate.format(format);\n return [min, max];\n}\nexports[\"default\"] = getDateRange;\n\n\n//# sourceURL=webpack://hsu-utils/./tools/GetDateRange/index.ts?");
175
+ eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar dayjs_1 = __importDefault(__webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\"));\nvar quarterOfYear_1 = __importDefault(__webpack_require__(/*! dayjs/plugin/quarterOfYear */ \"./node_modules/dayjs/plugin/quarterOfYear.js\"));\nvar weekOfYear_1 = __importDefault(__webpack_require__(/*! dayjs/plugin/weekOfYear */ \"./node_modules/dayjs/plugin/weekOfYear.js\"));\ndayjs_1.default.extend(quarterOfYear_1.default);\ndayjs_1.default.extend(weekOfYear_1.default);\nfunction getFormat(type, unit, hasTime) {\n if (unit === void 0) { unit = 'day'; }\n if (hasTime === void 0) { hasTime = true; }\n var baseFormat;\n switch (type) {\n case 'today':\n baseFormat = 'YYYY-MM-DD';\n break;\n case 'thisWeek':\n baseFormat = 'YYYY-MM-DD';\n break;\n case 'thisMonth':\n baseFormat = 'YYYY-MM';\n break;\n case 'thisQuarter':\n baseFormat = 'YYYY-[Q]Q';\n break;\n case 'thisYear':\n baseFormat = 'YYYY';\n break;\n case 'past':\n case 'future':\n default:\n switch (unit) {\n case 'year':\n baseFormat = 'YYYY';\n break;\n case 'month':\n baseFormat = 'YYYY-MM';\n break;\n case 'week':\n case 'day':\n default:\n baseFormat = 'YYYY-MM-DD';\n break;\n }\n break;\n }\n if (hasTime && (baseFormat.includes('DD') || baseFormat === 'YYYY-MM-DD')) {\n return \"\".concat(baseFormat, \" HH:mm:ss\");\n }\n return baseFormat;\n}\nfunction getDateRange(options) {\n var type = options.type, _a = options.amount, amount = _a === void 0 ? 0 : _a, baseDate = options.baseDate, _b = options.unit, unit = _b === void 0 ? 'day' : _b, minDateLimit = options.minDate, maxDateLimit = options.maxDate, _c = options.hasTime, hasTime = _c === void 0 ? true : _c;\n var base = baseDate ? (0, dayjs_1.default)(baseDate) : (0, dayjs_1.default)();\n var minDate;\n var maxDate;\n switch (type) {\n case 'past':\n maxDate = base.endOf(unit);\n minDate = base.subtract(amount, unit).startOf(unit);\n if (minDateLimit) {\n var minLimit = (0, dayjs_1.default)(minDateLimit).startOf(unit);\n if (minLimit.isAfter(minDate)) {\n minDate = minLimit;\n }\n }\n if (maxDateLimit) {\n var maxLimit = (0, dayjs_1.default)(maxDateLimit).endOf(unit);\n if (maxLimit.isBefore(maxDate)) {\n maxDate = maxLimit;\n }\n }\n break;\n case 'future':\n minDate = base.startOf(unit);\n maxDate = base.add(amount, unit).endOf(unit);\n if (minDateLimit) {\n var minLimit = (0, dayjs_1.default)(minDateLimit).startOf(unit);\n if (minLimit.isAfter(minDate)) {\n minDate = minLimit;\n }\n }\n if (maxDateLimit) {\n var maxLimit = (0, dayjs_1.default)(maxDateLimit).endOf(unit);\n if (maxLimit.isBefore(maxDate)) {\n maxDate = maxLimit;\n }\n }\n break;\n case 'today':\n minDate = base.startOf('day');\n maxDate = base.endOf('day');\n break;\n case 'thisWeek':\n minDate = base.startOf('week');\n maxDate = base.endOf('week');\n break;\n case 'thisMonth':\n minDate = base.startOf('month');\n maxDate = base.endOf('month');\n break;\n case 'thisQuarter':\n minDate = base.startOf('quarter');\n maxDate = base.endOf('quarter');\n break;\n case 'thisYear':\n minDate = base.startOf('year');\n maxDate = base.endOf('year');\n break;\n default:\n throw new Error(\"\\u4E0D\\u652F\\u6301\\u7684\\u7C7B\\u578B: \".concat(type));\n }\n var format = getFormat(type, unit, hasTime);\n var min = minDate.format(format);\n var max = maxDate.format(format);\n return [min, max];\n}\nexports[\"default\"] = getDateRange;\n\n\n//# sourceURL=webpack://hsu-utils/./tools/GetDateRange/index.ts?");
176
176
 
177
177
  /***/ }),
178
178