bc1943dc16
feat(dev): 添加开发服务器与热重载支持 - 新增 `npm run dev` 命令,启动带热重载的开发服务器 - 集成 rollup watch 模式与 LiveReload 实现自动刷新 - 添加开发指南 DEVELOPMENT.md,说明项目结构、预览方式及构建流程 - 新增开发预览页面 index.html,用于嵌入展示 sidepanel 内容 - 更新 package.json 和 package-lock.json,引入相关开发依赖 ```
82 lines
2.1 KiB
JavaScript
82 lines
2.1 KiB
JavaScript
/**
|
|
* 时间戳工具类函数
|
|
*/
|
|
|
|
/**
|
|
* 更新时间戳显示
|
|
* @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();
|
|
}
|