/** * 时间戳工具类函数 */ /** * 更新时间戳显示 * @param {boolean} showMilliseconds - 是否显示毫秒 */ export function updateTimestamp(showMilliseconds = true) { const currentTimestamp = document.getElementById('current-timestamp-value'); const currentTimestampUnit = document.getElementById('current-timestamp-unit'); const timestamp = Date.now(); const unit = showMilliseconds ? '毫秒' : '秒'; currentTimestamp.textContent = showMilliseconds ? timestamp : Math.floor(timestamp / 1000); currentTimestampUnit.textContent = unit; } /** * 转换时间戳为日期格式 * @param {string} timestamp - 输入的时间戳 * @param {boolean} isSeconds - 是否为秒格式 * @param {string} timeZone - 时区,默认为本地时区 * @returns {string} 格式化后的日期字符串 */ export function convertTimestampToDate( timestamp, isSeconds, timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone ) { // 转换为数字 let timestampNum = Number(timestamp); // 如果是秒,转换为毫秒 if (isSeconds) { timestampNum = timestampNum * 1000; } // 检查是否为有效数字 if (isNaN(timestampNum)) { return '请输入有效的时间戳'; } // 创建日期对象 const date = new Date(timestampNum); // 检查日期是否有效 if (isNaN(date.getTime())) { return '无效的日期'; } // 使用Intl.DateTimeFormat来根据时区格式化日期 const formatter = new Intl.DateTimeFormat('zh-CN', { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZone: timeZone, }); return formatter.format(date); } /** * 转换日期格式为时间戳 * @param {string} date - 输入的日期字符串 * @param {string} timeZone - 时区,默认为本地时区 * @returns {number|string} 时间戳或错误信息 */ export function convertDateToTimestamp( date, timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone ) { return new Date( Intl.DateTimeFormat('en-US', { timeZone: timeZone, hour12: false, }).format(date) ).getTime(); }