You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript将字符串'2023-06-19 05:00:00.554'转为Epoch时间?

解决JavaScript日期字符串转Epoch时间的问题

你的代码出现问题的核心原因是:你使用的"2023-06-19 05:00:00.554"这种空格分隔日期和时间的格式,不属于ECMAScript标准定义的可移植日期格式,不同JavaScript运行环境(比如不同浏览器)对它的解析行为不一致,可能返回错误的时间戳甚至NaN。

下面提供两种可靠的解决方法:

方法一:转为标准ISO 8601格式

把日期和时间之间的空格替换为T,转换成ISO标准格式后,所有现代浏览器和Node.js都能正确解析:

var s = "2023-06-19 05:00:00.554";
// 将空格替换为T,转为ISO标准格式
var isoString = s.replace(' ', 'T');
var epoch = new Date(isoString).getTime();

console.log(epoch); // 输出正确的毫秒级Epoch时间戳

方法二:手动拆分日期时间参数(兼容性最强)

如果需要兼容更旧的环境,可以手动拆分字符串中的年、月、日、时、分、秒、毫秒,直接传给Date构造函数(注意月份是从0开始的,需要减1):

var s = "2023-06-19 05:00:00.554";
// 拆分日期和时间部分
var [dateSegment, timeSegment] = s.split(' ');
// 拆分日期的年、月、日
var [year, month, day] = dateSegment.split('-').map(Number);
// 拆分时间的时、分、秒、毫秒
var [hours, minutes, seconds, milliseconds] = timeSegment.split(/[:.]/).map(Number);

// 创建Date对象,月份要减1(因为JS中月份是0-11)
var date = new Date(year, month - 1, day, hours, minutes, seconds, milliseconds);
var epoch = date.getTime();

console.log(epoch);

这两种方法都能确保你得到正确的Epoch时间戳,其中方法二的兼容性最好,几乎能适配所有JavaScript运行环境。

内容的提问来源于stack exchange,提问作者jsor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:33:29