UNPKG

@hocgin/hkit

Version:
136 lines (131 loc) 6.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DateFormatKit = void 0; var _dayjs = _interopRequireDefault(require("dayjs")); var _relativeTime = _interopRequireDefault(require("dayjs/plugin/relativeTime")); var _class; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } _dayjs.default.extend(_relativeTime.default); var DateFormatKit = exports.DateFormatKit = /*#__PURE__*/function () { function DateFormatKit() { _classCallCheck(this, DateFormatKit); } _createClass(DateFormatKit, null, [{ key: "toDateStr", value: /** * 格式化时间 * @param timestamp * @param format * @param def * @return {string} */ function toDateStr(timestamp) { var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DateFormatKit.DATETIME_DEFAULT_FORMAT; var def = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'N/A'; if (timestamp === null || timestamp === undefined) { return def; } return _dayjs.default.unix(timestamp).format(format); } /** * 相对时间 * @param timestamp * @param len * @param defFormat * @return {string|*} */ }, { key: "toRelativeDateStr", value: function toRelativeDateStr(timestamp) { var len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10 * 24 * 60 * 60 * 1000; var defFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DateFormatKit.DATETIME_FORMAT_2; if (timestamp < new Date().getTime() - len) { return DateFormatKit.toDateStr(timestamp, defFormat); } return (0, _dayjs.default)(timestamp).fromNow(); } /** * 相对时间 * @param localDatetime 2021-06-01T00:30:30.159 * @return * -> 一天内 3分钟前 * -> 一年内 09-11 11:30 * -> 一年前 2020-06-01 11:30 */ }, { key: "parseLocalDatetime", value: function parseLocalDatetime(localDatetime) { if (!localDatetime) { return undefined; } var fmt = DateFormatKit.DATETIME_LOCAL_DATETIME_FORMAT; if (localDatetime.includes('.')) { var subs = localDatetime.split('.'); if (subs[subs.length - 1].length === 6) { fmt = DateFormatKit.DATETIME_LOCAL_DATETIME_FORMAT_6; // localDatetime = localDatetime.substring(0, localDatetime.length - 3); } else { fmt = DateFormatKit.DATETIME_LOCAL_DATETIME_FORMAT_3; } } var formatter = (0, _dayjs.default)(localDatetime, fmt); if (!formatter.isValid()) { return localDatetime; } var timestamp = formatter.valueOf(); var diffTimestamp = Date.now() - timestamp; // 一天内 3分钟前 if (diffTimestamp <= 24 * 60 * 60 * 1000) { return (0, _dayjs.default)(timestamp).fromNow(); } // 和当前是同一年内 09-11 11:30 else if (diffTimestamp <= 365 * 24 * 60 * 60 * 1000 && formatter.year() === new Date().getFullYear()) { return formatter.format('MM-DD HH:mm'); } // 2020-06-01 11:30 else { return formatter.format('YYYY-MM-DD HH:mm'); } } /** * 格式化时间 * @param localDatetime 2021-06-01T00:30:30.159 * @param defFormat 格式 * @return 根据格式返回 */ }, { key: "parseLocalDatetime2", value: function parseLocalDatetime2(localDatetime) { var defFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DateFormatKit.DATETIME_FORMAT_1; var formatter = (0, _dayjs.default)(localDatetime, DateFormatKit.DATETIME_DEFAULT_FORMAT); if (!formatter.isValid()) { return "".concat(localDatetime); } return formatter.format(defFormat); } }]); return DateFormatKit; }(); _class = DateFormatKit; _defineProperty(DateFormatKit, "DATETIME_FORMAT_1", 'YYYY-MM-DD HH:mm:ss'); _defineProperty(DateFormatKit, "DATETIME_FORMAT_2", 'YYYY-MM-DD HH:mm'); _defineProperty(DateFormatKit, "DATETIME_FORMAT_3", 'YYYY-MM-DD'); _defineProperty(DateFormatKit, "DATETIME_FORMAT_4", 'YYYY'); _defineProperty(DateFormatKit, "DATETIME_FORMAT_5", 'MM-DD'); _defineProperty(DateFormatKit, "DATETIME_FORMAT_6", 'HH:mm'); _defineProperty(DateFormatKit, "DATETIME_FORMAT_7", 'HH:mm:ss'); _defineProperty(DateFormatKit, "DATETIME_DEFAULT_FORMAT", _class.DATETIME_FORMAT_1); _defineProperty(DateFormatKit, "DATETIME_LOCAL_DATETIME_FORMAT", 'yyyy-MM-ddTHH:mm:ss'); // 2024-09-21T15:19:43.766389 _defineProperty(DateFormatKit, "DATETIME_LOCAL_DATETIME_FORMAT_3", "yyyy-MM-ddTHH:mm:ss.SSS"); _defineProperty(DateFormatKit, "DATETIME_LOCAL_DATETIME_FORMAT_6", 'yyyy-MM-ddTHH:mm:ss.SSSSSS');