zarm-web
Version:
基于 React 的桌面端UI库
96 lines (81 loc) • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
/* eslint-disable */
var _default = {
// 格式化日期
date: function date(_date, fmt) {
if (!_date || !fmt) {
return _date;
} // 判断是否为 Date 对象
if (!(Object.prototype.toString.call(_date) === '[object Date]')) {
_date = new Date(_date.toString().replace(/-/g, '/'));
}
var o = {
'M+': _date.getMonth() + 1,
// 月份
'd+': _date.getDate(),
// 日
'h+': _date.getHours(),
// 小时
'm+': _date.getMinutes(),
// 分
's+': _date.getSeconds(),
// 秒
'q+': Math.floor((_date.getMonth() + 3) / 3),
// 季度
S: _date.getMilliseconds() // 毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, "".concat(_date.getFullYear()).substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(".concat(k, ")")).test(fmt)) {
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : "00".concat(o[k]).substr("".concat(o[k]).length));
}
}
return fmt;
},
// 验证日期格式
validate: function validate(date, fmt) {
if (!date || !fmt) {
return false;
}
var sep = /-/.test(fmt) ? '-' : '/';
fmt = fmt.replace(/[yMdhms]/g, '\\d').replace(/(-|\/)/g, "\\".concat(sep));
return new RegExp("^".concat(fmt, "$")).test(date);
},
// 将数字转成日期格式
transform: function transform(num, fmt) {
var sep = /-/.test(fmt) ? '-' : '/';
fmt = fmt.replace(/-|\//g, '');
if (num.length !== fmt.length || !/^\d+$/.test(num)) {
return num;
}
if (/^(y+)(M+)(d+)$/.test(fmt)) {
var date = '';
date += "".concat(num.substr(0, RegExp.$1.length)).concat(sep);
date += "".concat(num.substr(RegExp.$1.length, RegExp.$2.length)).concat(sep);
date += "".concat(num.substr(RegExp.$1.length + RegExp.$2.length, RegExp.$3.length));
return date;
}
},
// 判断日期是否在有效范围内
inrange: function inrange(date, fmt) {
var sep = /-/.test(fmt) ? '-' : '/';
var parts = date.split(sep);
var month = Number(parts[1]);
var day = Number(parts[2]);
var maxs = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1];
if (month < 1 || month > 12) {
return false;
}
if (day < 1 || day > maxs) {
return false;
}
return true;
}
};
exports.default = _default;