|
|
@ -48,7 +48,7 @@ function time2Date(time, isOffset = false) { |
|
|
function parseTime(time, isOffset = false, cformat = null) { |
|
|
function parseTime(time, isOffset = false, cformat = null) { |
|
|
|
|
|
|
|
|
// 设置默认格式
|
|
|
// 设置默认格式
|
|
|
let format = cformat || '{y}-{m}-{d} {h}:{i}:{s}'; |
|
|
let format = cformat || '{y}-{m}-{d} {h}:{i}:{s} {a}'; |
|
|
|
|
|
|
|
|
const date = time2Date(time, isOffset); |
|
|
const date = time2Date(time, isOffset); |
|
|
|
|
|
|
|
|
@ -57,17 +57,18 @@ function parseTime(time, isOffset = false, cformat = null) { |
|
|
y: date.getFullYear(), |
|
|
y: date.getFullYear(), |
|
|
m: date.getMonth() + 1, // 显示月份值需要+1
|
|
|
m: date.getMonth() + 1, // 显示月份值需要+1
|
|
|
d: date.getDate(), |
|
|
d: date.getDate(), |
|
|
h: date.getHours(), |
|
|
h: date.getHours() % 12 || 12, |
|
|
i: date.getMinutes(), |
|
|
i: date.getMinutes(), |
|
|
s: date.getSeconds(), |
|
|
s: date.getSeconds(), |
|
|
a: date.getDay() |
|
|
a: date.getHours() >= 12 ? 'PM' : 'AM', |
|
|
|
|
|
w: date.getDay() |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
// 星期值需要转化为中文
|
|
|
// 星期值需要转化为中文
|
|
|
dataObj.a = '星期' + ['日', '一', '二', '三', '四', '五', '六'][dataObj.a]; |
|
|
dataObj.w = '星期' + ['日', '一', '二', '三', '四', '五', '六'][dataObj.w]; |
|
|
|
|
|
|
|
|
// 匹配{}中的y|m|d...部分,分别替换不同的值
|
|
|
// 匹配{}中的y|m|d...部分,分别替换不同的值
|
|
|
const result = format.replace(/{(y|m|d|h|i|s|a)+}/g, (segment, key) => { |
|
|
const result = format.replace(/{(y|m|d|h|i|s|a|w)+}/g, (segment, key) => { |
|
|
// 由索引提取值
|
|
|
// 由索引提取值
|
|
|
let value = dataObj[key]; |
|
|
let value = dataObj[key]; |
|
|
// 给值添加前导0
|
|
|
// 给值添加前导0
|
|
|
@ -111,15 +112,40 @@ function pubTime(time, isOffset = false, format = null) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 接口时间转换成12进制 |
|
|
|
|
|
* @param {string|number} dateTimeStr 接口返回的时间和日期 |
|
|
|
|
|
*/ |
|
|
|
|
|
function convertTo12HourFormat(dateTimeStr) { |
|
|
|
|
|
// 解析输入的日期时间字符串
|
|
|
|
|
|
const date = new Date(dateTimeStr.replace(' ', 'T')); // 使用 T 将字符串转换为 ISO 格式
|
|
|
|
|
|
|
|
|
|
|
|
// 获取各个部分
|
|
|
|
|
|
const year = date.getFullYear(); |
|
|
|
|
|
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份要加1,并填充为2位
|
|
|
|
|
|
const day = String(date.getDate()).padStart(2, '0'); // 填充为2位
|
|
|
|
|
|
let hours = date.getHours(); |
|
|
|
|
|
const minutes = String(date.getMinutes()).padStart(2, '0'); // 填充为2位
|
|
|
|
|
|
const seconds = String(date.getSeconds()).padStart(2, '0'); // 填充为2位
|
|
|
|
|
|
|
|
|
|
|
|
// 计算12小时制的小时和 AM/PM
|
|
|
|
|
|
const ampm = hours >= 12 ? 'PM' : 'AM';//PM代表下午,AM代表上午。
|
|
|
|
|
|
hours = String(hours % 12 || 12).padStart(2, '0'); // 0转换为12
|
|
|
|
|
|
|
|
|
|
|
|
// 格式化输出
|
|
|
|
|
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds} ${ampm}`; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 将方法写入构造函数 便于全局使用
|
|
|
// 将方法写入构造函数 便于全局使用
|
|
|
Object.assign(Date, { |
|
|
Object.assign(Date, { |
|
|
time2Date, |
|
|
time2Date, |
|
|
parseTime, |
|
|
parseTime, |
|
|
pubTime, |
|
|
pubTime |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
export default{ |
|
|
export default{ |
|
|
time2Date, |
|
|
time2Date, |
|
|
parseTime, |
|
|
parseTime, |
|
|
pubTime |
|
|
pubTime, |
|
|
|
|
|
convertTo12HourFormat |
|
|
} |
|
|
} |
|
|
|