如何用JavaScript内置方法获取带毫秒的本地时间字符串?
获取带毫秒的本地时间(内置方法实现)
嘿,这个需求刚好我之前做项目时踩过坑!其实不用自己手动拼接字符串,JavaScript的toLocaleTimeString本身就支持通过配置参数来显示毫秒,完全用内置方法就能搞定,非常方便😎
最优解决方案:带配置的toLocaleTimeString
直接通过第二个参数的配置项,指定显示毫秒位数即可:
const currentTime = new Date(); const timeWithMilliseconds = currentTime.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit', fractionalSecondDigits: 3 // 这里控制毫秒位数,可选0-3,设3就是完整三位 }); console.log(timeWithMilliseconds); // 输出示例:"20:11:40.124"
- 第一个参数传空数组
[]表示使用当前环境的默认语言和格式(比如中文环境会遵循本地时间显示习惯,但时分秒+毫秒的格式完全符合你的需求) fractionalSecondDigits是ES2021新增的配置项,现代浏览器(Chrome 90+、Firefox 88+)和Node.js 14+都支持,完全能覆盖大部分现代项目的兼容性需求
备选方案:用toISOString截取(注意是UTC时间)
如果你只是需要类似格式的字符串,不在意是否是本地时间,也可以用toISOString截取对应部分,但这个方法返回的是UTC时间,和本地时间可能存在小时差,需要注意:
const utcTimeWithMs = new Date().toISOString().slice(11, 23); console.log(utcTimeWithMs); // 输出示例:"20:11:40.124"(UTC时间)
这个方法兼容性拉满,但因为是UTC时间,和本地时间有差异,所以如果你的需求是本地时间,还是第一种方法更精准。
内容的提问来源于stack exchange,提问作者Alexander Mills
相关产品推荐
相关产品推荐

