JavaScript中如何将日期时间字符串转换为时间戳实现日期比较
实现方案
首先你提供的time变量存在格式问题,推测是输入时漏写冒号的笔误,正确格式应为13:22:24.990。如果原始数据确实是13:2224.990的格式,需要先做格式校正,再拼接日期转时间戳,具体步骤如下:
- 第一步:格式校正与拼接
let date = "30.09.2021"; let time = "13:2224.990"; // 校正时间格式:把13:2224.990转为13:22:24.990 const formatTime = (rawTime) => { const regRes = rawTime.match(/^(\d{2}):(\d{2})(\d{2})\.(\d{3})$/); return regRes ? `${regRes[1]}:${regRes[2]}:${regRes[3]}.${regRes[4]}` : rawTime; } const formattedTime = formatTime(time); // 把日期从dd.mm.yyyy转为yyyy-mm-dd,适配Date对象解析规则 const [day, month, year] = date.split('.'); const fullTimeStr = `${year}-${month}-${day}T${formattedTime}`;
- 第二步:转时间戳并比较
时间戳是毫秒级的数字,直接用常规比较运算符对比即可:
// 转时间戳 const targetTimestamp = new Date(fullTimeStr).getTime(); // 比较示例,对比2021-10-01的时间戳 const compareTimestamp = new Date('2021-10-01T00:00:00.000').getTime(); console.log(targetTimestamp < compareTimestamp); // 输出true,代表目标时间更早
注意:如果转换后得到NaN,需要检查输入的日期、时间是否为合法值,比如月份是否在1-12区间、日期是否属于对应月份的合法取值
内容的提问来源于stack exchange,提问作者laieman
相关产品推荐
相关产品推荐

