JavaScript获取当前时间戳的5种方法及常用时间段计算

作者:代码拾荒

时间:2026-10-31

浏览:187

本文汇总了JavaScript中获取当前时间戳的5种常用方法,包括Date.parse、Math.round、valueOf、getTime及一元运算符,并详细解析了获取今日、本周、本月及本年起止时间戳的实现逻辑与代码示例,帮助开发者高效处理时间相关需求。

文章目录

在JavaScript开发中,获取当前时间戳是一项基础且频繁的操作。本文将系统介绍5种不同的实现方式,并进一步探讨如何基于当前时间计算特定时间段(如日、周、月、年)的起止时间戳,为前端开发提供实用的时间处理方案。

第一种方法利用Date.parse()函数。该函数接收一个日期字符串或Date对象,返回自1970年1月1日00:00:00 UTC以来的秒数。需要注意的是,Date.parse返回的是秒级精度,因此结果通常只有10位数字,若需13位毫秒级时间戳,需乘以1000。示例代码展示了如何获取并打印该值,输出结果为13位数字(如1591669256000),但实际精度为秒。

const timestamp = Date.parse(new Date());
console.log(timestamp);
//输出 1591669256000   13位

第二种方法通过Math.round()结合Date对象实现。new Date()返回当前时间的Date对象,其valueOf()或getTime()内部已包含毫秒信息。Math.round()在此处主要用于确保返回整数形式的时间戳。该方法直接获取毫秒级精度,输出结果为13位数字(如1591669961203),适用于需要毫秒精度的场景。

const timestamp = Math.round(new Date());
console.log(timestamp);
//输出 1591669961203   13位

第三种方法调用Date对象的valueOf()函数。这是获取时间戳最直观的方式之一,直接返回自1970年1月1日以来的毫秒数。代码示例中,(new Date()).valueOf()被赋值给timestamp变量,控制台输出结果为13位数字(如1591670037603),精度精确到毫秒,是推荐的标准做法之一。

const timestamp = (new Date()).valueOf();
console.log(timestamp);
//输出 1591670037603   13位

第四种方法使用Date对象的getTime()函数。与valueOf()类似,getTime()专门用于返回自1970年1月1日以来的毫秒数。代码示例中,new Date().getTime()被赋值给timestamp变量,控制台输出结果为13位数字(如1591670068833)。该方法语义清晰,明确表达了获取时间的意图,是开发者常用的标准API。

const timestamp = new Date().getTime();
console.log(timestamp);
//输出 1591670068833   13位

第五种方法利用一元正运算符(+)作用于Date对象。JavaScript引擎在遇到一元运算符时,会隐式调用Date对象的valueOf()方法,从而返回毫秒级时间戳。代码示例中,+new Date()被赋值给timestamp变量,控制台输出结果为13位数字(如1591670099066)。这种写法简洁高效,常用于代码压缩或追求简短语法的场景。

const timestamp = +new Date();
console.log(timestamp);
//输出 1591670099066   13位

除了获取当前时间戳,实际开发中常需计算特定时间段的起止时间戳。本节介绍如何基于当前日期,计算今日、本周、本月和本年的开始与结束时间戳。这些计算依赖于Date对象的各个API组合,通过设置小时、分钟、秒及日期参数来实现精确的时间范围界定。

计算今日时间戳的方法如下:起始时间戳通过new Date(new Date().toLocaleDateString()).getTime()获取,该表达式将当前时间重置为当天的00:00:00。结束时间戳则在起始时间戳基础上加上24小时的毫秒数(24 * 60 * 60 * 1000)并减1,以确保覆盖全天最后一毫秒。代码示例展示了这一逻辑,适用于需要统计当日数据的场景。

// 今天开始时间的时间戳
new Date(new Date().toLocaleDateString()).getTime()
// 今天结束时间的时间戳
new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1

计算本周时间戳涉及对星期几的处理。起始时间戳通过new Date(new Date().setHours(0, 0, 0) - (new Date().getDay() - 1) * 24 * 60 * 60 * 1000)获取,其中getDay()返回当前星期几(0为周日),通过减去前几天的毫秒数定位到周一(或周日,视业务定义)的开始。结束时间戳则通过加上剩余天数的毫秒数计算得出。代码示例展示了这一复杂的时间偏移计算,适用于周报或周统计需求。

// 本周开始时间的时间戳
new Date(new Date().setHours(0, 0, 0) - (new Date().getDay() - 1) *24 * 60 * 60 *1000)
// 本周结束时间的时间戳
new Date(new Date().setHours(0, 0, 0) + (7 - new Date().getDay()) *24 * 60 * 60 *1000)

计算本月时间戳需关注月份和日期的重置。起始时间戳通过new Date(new Date(new Date().getFullYear(), new Date().getMonth(), 1).setHours(0, 0, 0))获取,该表达式将日期重置为当月1日00:00:00。结束时间戳则通过设置月份为下个月,日期为0(即上月最后一天),并设置时间为23:59:59:59来获取。代码示例展示了这一逻辑,适用于月度报表或月度数据统计。

// 本月开始时间的时间戳
new Date(new Date(new Date().getFullYear(), new Date().getMonth(), 1).setHours(0, 0, 0))
// 本月结束时间的时间戳
new Date(new Date(new Date().getFullYear(), new Date().getMonth()+ 1, 0).setHours(23, 59, 59, 59))

计算本年时间戳相对简单。起始时间戳通过new Date(new Date().getFullYear(), 0, 1)获取,该表达式将月份设为0(一月),日期设为1,即当年1月1日。结束时间戳则通过new Date(new Date(new Date().getFullYear() + 1, 0, 0).setHours(23, 59, 59, 59))获取,该表达式定位到下一年的1月0日(即当年12月31日)的最后一毫秒。代码示例展示了这一逻辑,适用于年度统计或跨年数据处理。

// 本年开始时间的时间戳
new Date(new Date().getFullYear(), 0, 1)
// 本年结束时间的时间戳
new Date(new Date(new Date().getFullYear() + 1, 0, 0).setHours(23, 59, 59, 59))

本文详细梳理了JavaScript中获取当前时间戳的5种标准方法,涵盖了从秒级到毫秒级的不同精度需求,并深入解析了基于Date对象计算日、周、月、年时间戳的实用技巧。掌握这些方法有助于开发者在处理日志、缓存过期、数据统计等场景时,更高效地处理时间相关逻辑。

至此,关于JavaScript获取当前时间戳5种方法及常用时间段计算的內容已介绍完毕。更多相关JS获取当前时间戳内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章