本文主要是介绍JavaScript时间戳与时间的转化常用方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《JavaScript时间戳与时间的转化常用方法》在JavaScript中,时间戳(Timestamp)通常指Unix时间戳,即从1970年1月1日00:00:00UTC到某个时间点经过的毫秒数,下面...
在 JavaScript 中,时间戳(Timestamp)通常指 Unix 时间戳,即从 1970年1月1日 00:00:00 UTC 到某个时间点经过的 毫秒数(注意:其他语言如 python 可能使用秒,但 javascript 默认用毫秒)。以下是时间戳与时间格式相互转换的常用方法:
1. 获取当前时间戳
// 方法1:Date.now() const timestamp1 = Date.now(); // 方法2:new Date().getTime() const timestamp2 = new Date().getTime(); // 方法3:+new Date() const timestamp3 = +new Date();
2. 时间戳 → 时间对象
用时间戳生成 Date
对象后,可提取具体时间信息:
const timestamp = 1696147200000; // 示例时间戳(2023-10-01 00:00:00 UTC) const date = new Date(timestamp); // 提取时间RhONXUjga信息(本地时区) const year = date.getFullYear(); // 2023 const month = date.getMonth() + 1; // 10(注意月份从0开始,需+1) const day = date.getDate(); // 1 const hours = date.getHours(); // 8(假设时区为UTC+8) const minutes = date.getMinutes(); // 0 const seconds = date.getSeconds(); // 0 // 提取UTC时间信息 const utcHours = date.getUTCHours(); // 0(UTC时间)
3. 时间戳 → 格式化字符串
将 Date
对象格式化为易读的字符串:
// 方法1:使用内置方法(本地时区) const localDateStr = date.toLocaleDateString(); // "2023/10/1" const localTimeStr = date.toLocaleTimeString(); // "08:00:00" const localStr = date.toLocaleString(); // "2023/10/1 08:00:00" // 方法2:手动拼接(灵活定制) const formattedTime = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours}:${minutes}:${seconds}`; // "2023-10-01 08:00:00" // 方法3:转成ISO标准格式(UTC时间) const isoString = date.toISOString(); // "2023-10-01T00:00:00.000Z"
4. 时间字符串 → 时间戳
将日期字符串解析为时间戳:
// 方法1:Date.parse()(需符合标准格式) const timestamp4 = Date.parse('2023-10-01T00:00:00Z'); // 1696147200000(UTC时间) // 方法2:new Date().getTime() const dateStr = '2023-10-01 08:00:00'; // 假设本地时区为UTC+8 const timestamp5 = new Date(dateStr).getTime(); // 1696147200000(需注意时区问题) // 注意:非标准格式可能导致android解析失败,建议使用ISO格式(YYYY-MM-DDTHH:mm:ssZ)
5. 常见场景示例
场景1:计算时间差
const start = Date.now(); // ...执行某些操作 const end = Date.now(); const duration = end - start; // 毫秒数
场景2:倒计时功能
www.chinasem.cnfunction formatCountdown(timestamp) {
const now = Date.now();
const diff = timestamp - now;
const days = Math.floor(diff / (1000 * 60 * 编程60 * 24));
const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
return `${days}天 ${hours}小时`;
}
场景3:UTC与本地时间互转
// UTC时间 → 本地时间 const utcDate = new Date('2023-10-01T00:00:00Z'); const localHours = utcDate.getHours(); // 本地时区的小时数(如UTC+8得到8) // 本地时间 → UTC时间戳 const localDate = new Date(2023, 9, 1, 8, 0, 0); // 2023-10-01 08:00:00(本地时间) const utcTimestamp = Date.UTC(2023, 9, 1, 0, 0, 0); // 1696147200000
注意事项
时区问题
new Date()
和Date.parse()
默认使用本地时区,而toISOString()
和Date.UTC()
使用 UTC 时区。- 跨时区应用建议统一使用 UTC 时间。
时间戳单位
- JavaScript 使用 毫秒,与其他语言(如 Python 的秒)转换时需注意单位换算:
const seconds = Math.floor(timestamp / 1000); // 毫秒转秒 const milliseconds = seconds * 1000; // 秒转毫秒
浏览器兼容性
- 避免使用非标准日期格式(如
'2023-10-01'
不带时间部分),不同浏览器解析结果可能不一致。
到此这篇关于JavaScript时间戳与时间的转化常用方法的文章就介绍到这了,更多相关js时间戳与时间的转化内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!
这篇关于JavaScript时间戳与时间的转化常用方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!