js分隔字符串为数组,截取以及时间戳转换为日期
/**
* 将时间戳格式化为指定日期字符串
* @param {number|string} timestamp 时间戳(支持秒级或毫秒级)
* @param {string} format 格式模板,默认'YYYY-MM-DD HH:mm:ss'
* @returns {string} 格式化后的日期字符串
*/
function formatDate(timestamp, format = "YYYY-MM-DD HH:mm:ss") {
// 处理传入的timestamp类型(兼容字符串和数字)
let ts = Number(timestamp);
// 自动检测并转换秒级时间戳(10位)
if (ts < 9999999999) ts *= 1000;
const date = new Date(ts);
// 验证日期有效性
if (isNaN(date)) return "Invalid Date";
// 使用UTC时间(如需本地时间,移除UTC相关方法)
const year = date.getUTCFullYear();
const month = String(date.getUTCMonth() + 1).padStart(2, "0");
const day = String(date.getUTCDate()).padStart(2, "0");
const hours = String(date.getUTCHours()).padStart(2, "0");
const minutes = String(date.getUTCMinutes()).padStart(2, "0");
const seconds = String(date.getUTCSeconds()).padStart(2, "0");
const milliseconds = String(date.getUTCMilliseconds()).padStart(3, "0");
// 使用对象存储替换项,支持扩展更多格式
const replacements = {
YYYY: year,
YY: String(year).slice(-2),
MM: month,
M: date.getUTCMonth() + 1, // 无前导零
DD: day,
D: date.getUTCDate(),
HH: hours,
H: date.getUTCHours(),
mm: minutes,
m: date.getUTCMinutes(),
ss: seconds,
s: date.getUTCSeconds(),
SSS: milliseconds,
ssS: milliseconds.slice(0, 2),
};
// 使用正则表达式一次性替换所有匹配项
return format.replace(
/(YYYY|YY|MM|M|DD|D|HH|H|mm|m|ss|s|SSS|ssS)/g,
(match) => replacements[match] || ""
);
}
// 使用示例
console.log(formatDate(1717027200)); // 秒级时间戳 → "2024-05-30 00:00:00"
console.log(formatDate(1717027200000, "YYYY/MM/DD")); // → "2024/05/30"
console.log(formatDate("invalid", "YY-M-D H:m:s")); // → "Invalid Date"
const parts = a.split("-"); // 用 "-" 分割字符串
const target = parts[1]; // 获取第二部分(索引从0开始)
最近访问时间:2025-05-10 05:28:17