如何使用JavaScript将带单位的时间字符串转换为对应秒数
JavaScript时间单位转秒函数实现
function to_number_of_seconds(timeStr) { // 单位与秒数的映射表,可按需扩展其他单位 const unitMap = { s: 1, m: 60, h: 3600, d: 86400 }; // 匹配数字+单位的格式,自动兼容单位大小写 const matchResult = timeStr.toLowerCase().match(/^(\d+)([smhd])$/); if (!matchResult) { return NaN; // 格式不匹配时返回NaN,可根据需求调整为抛出异常 } const num = parseInt(matchResult[1], 10); const unit = matchResult[2]; return num * unitMap[unit]; }
代码说明
- 支持的单位包括:
s(秒)、m(分钟)、h(小时)、d(天),如果需要支持周、月等单位,直接在unitMap中添加对应映射即可 - 自动兼容大小写单位输入,比如
1H、3D都可以正常识别转换 - 当前默认只支持整数数值输入,如果需要支持小数(比如
1.5h),可以把正则改为/^(\d+(?:\.\d+)?)([smhd])$/,同时把parseInt替换为parseFloat即可 - 输入格式不匹配时默认返回
NaN,你可以根据业务需求调整为抛出异常或者返回0等默认值
测试示例
let a = '1h'; let b = '3d'; a = to_number_of_seconds(a); b = to_number_of_seconds(b); console.log(a); // 输出 3600 console.log(b); // 输出 259200
内容的提问来源于stack exchange,提问作者mod7ex
相关产品推荐
相关产品推荐

