@hocgin/hkit
Version:
136 lines (131 loc) • 6.57 kB
JavaScript
;
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');