UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

102 lines (99 loc) 3.54 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.DateFieldFormat = void 0; exports.isDateFieldType = isDateFieldType; exports.transformDateFieldValue = transformDateFieldValue; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _ut = require("ut2"); var _dayjsUtil = require("../../utils/dayjsUtil"); /**日期格式映射 */ var DateFieldFormat = exports.DateFieldFormat = { date: 'YYYY-MM-DD', dateRange: 'YYYY-MM-DD', dateWeek: 'YYYY-wo', dateMonth: 'YYYY-MM', dateQuarter: 'YYYY-\\QQ', dateYear: 'YYYY', dateTime: 'YYYY-MM-DD HH:mm:ss', dateTimeRange: 'YYYY-MM-DD HH:mm:ss', time: 'HH:mm:ss', timeRange: 'HH:mm:ss' }; var DateFieldValueType = Object.keys(DateFieldFormat).concat(['fromNow']); /** * 判断是否为日期字段值类型 * @param fieldValueType 字段类型字符串 * @returns */ function isDateFieldType(fieldValueType) { return !!fieldValueType && DateFieldValueType.includes(fieldValueType); } /** * 格式化日期字符串 * * @param value 日期值 * @param format 日期格式 * @returns 格式化后的日期字符串 * @example * _formatDate('2023-03-01', 'YYYY-MM-DD') // '2023-03-01' * _formatDate('invalid date', 'YYYY-MM-DD') // 'invalid date' * _formatDate('23:00:00', 'HH:mm:ss') // '23:00:00' * _formatDate('23:00', 'HH:mm:ss') // 'Invalid Date' * _formatDate(dayjs('2023-03-01 23:00:00'), 'HH:mm:ss') // '23:00:00' */ function _formatDate(value, format) { var str = (0, _dayjsUtil.dayjs)(value).format(format); if ((0, _dayjsUtil.isInvalidDateString)(str)) { str = (0, _dayjsUtil.dayjs)(value, format).format(format); } return str; } /** * 获取格式化后的日期字符串 * @param value 日期值 * @param type 日期字段类型 * @param format 日期格式 * @returns 格式化后的日期字符串 * @example * transformDateFieldValue('2023-03-01', 'date') // '2023-03-01' * transformDateFieldValue('abc', 'date') // 'Invalid Date' * transformDateFieldValue('23:00:00', 'time') // '23:00:00' * transformDateFieldValue('23:00', 'time') // 'Invalid Date' * transformDateFieldValue(dayjs('2023-03-01 23:00:00'), 'time') // '23:00:00' * transformDateFieldValue(['2023-03-01', '2025-03-01'], 'dateRange') // '2023-03-01 ~ 2025-03-01' * transformDateFieldValue('2023-03-01', 'fromNow') // '10个月前' */ function transformDateFieldValue(value) { var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'date'; var format = arguments.length > 2 ? arguments[2] : undefined; if (!value) { return ''; } if ((0, _ut.isArray)(value)) { // @ts-ignore if (value.length === 0) { return ''; } if (type === 'dateRange' || type === 'dateTimeRange' || type === 'timeRange') { var _fmt = format || DateFieldFormat[type]; var _value = (0, _slicedToArray2.default)(value, 2), startDate = _value[0], endDate = _value[1]; var startText = startDate ? _formatDate(startDate, _fmt) : '-'; var endText = endDate ? _formatDate(endDate, _fmt) : '-'; return "".concat(startText, " ~ ").concat(endText); } return ''; } if (type === 'fromNow') { return (0, _dayjsUtil.dayjs)(value).fromNow(); } if (type === 'dateQuarter') { return (0, _dayjsUtil.formatQuarter)(value); } var fmt = format || DateFieldFormat[type]; return _formatDate(value, fmt); }