| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.formatDate = exports.parseDate = exports.DAY = exports.HOUR = exports.MINUTE = exports.SECOND = exports.DATE_TIME_FORMAT = exports.DATE_FORMAT = exports.dayjs = void 0;
- const tslib_1 = require("tslib");
- /**
- * 日期和时间相关
- *
- * 更复杂的日期操作建议直接使用 dayjs https://dayjs.gitee.io/docs/zh-CN/installation/installation
- */
- const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
- exports.dayjs = dayjs_1.default;
- const customParseFormat_1 = tslib_1.__importDefault(require("dayjs/plugin/customParseFormat"));
- dayjs_1.default.extend(customParseFormat_1.default);
- /**
- * @group 日期格式
- * @groupOrder 4
- */
- exports.DATE_FORMAT = 'YYYY-MM-DD';
- /**
- * @group 日期格式
- * @groupOrder 4
- */
- exports.DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
- exports.SECOND = 1000; // 毫秒
- exports.MINUTE = 60 * exports.SECOND;
- exports.HOUR = 60 * exports.MINUTE;
- exports.DAY = 24 * exports.HOUR;
- /**
- * 日期解析
- *
- * @group 日期
- * @groupOrder 5
- *
- * @remarks
- * 如果传入数字,我们假定为`毫秒` <br/>
- *` parseDate`会先尝试常见的日期格式(例如 YYYY/MM/DD HH:mm:ss、YYYY-MM-DD HH:mm:ss、YYYY-MM-DD),如果`parse`失败就会使用`format`
- *
- * @param dateString - 要转换成日期的数字和字符串.
- * @param format - 用于指定日期的格式。如果你的日期格式不是常见的格式,可以显式指定
- * @link https://dayjs.gitee.io/docs/zh-CN/parse/string-format
- *
- * @example
- * 例子:
- * ```typescript
- * parseDate(3600)
- * // => 1970-01-01T00:00:03.600Z
- *
- * parseDate('2012/12/10 12:12:12')
- * // => 2012-02-10T04:12:12.000Z
- * ```
- * @public
- */
- function parseDate(dateString, format) {
- if (typeof dateString === 'number') {
- return new Date(dateString);
- }
- else if (dateString instanceof Date) {
- return dateString;
- }
- const day = (0, dayjs_1.default)(dateString, format);
- if (day.isValid()) {
- return day.toDate();
- }
- else {
- if (!format) {
- // 兼容 ios
- dateString = dateString.replace(/-/g, '/');
- dateString = dateString.replace(/T/g, ' ');
- }
- const retry = (0, dayjs_1.default)(dateString);
- if (retry.isValid()) {
- return retry.toDate();
- }
- return null;
- }
- }
- exports.parseDate = parseDate;
- /**
- * 格式化日期
- *
- * @group 日期
- * @groupOrder 5
- *
- * @remarks
- * 如果传入数字,我们假定为`毫秒`
- *
- * @param date - 日期.
- * @param format - 详见 {@link https://dayjs.gitee.io/docs/zh-CN/parse/string-format}.
- *
- * @example
- * 例子:
- * ```
- * const day = new Date('2012/12/12 12:12:12');
- *
- * const target = formatDate(day);
- * // => target = "2012-02-10"
- *
- * const target2 = formatDate(day, 'YYYY-MM-DD HH:mm:ss');
- * // => target2 = "2012-02-10 12:12:12"
- * ```
- * @public
- */
- function formatDate(date, format = exports.DATE_FORMAT, parseFormat) {
- const parsed = parseDate(date, parseFormat);
- return (0, dayjs_1.default)(parsed).format(format);
- }
- exports.formatDate = formatDate;
|