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

如何在不使用Date的情况下用jQuery将时间字符串转换为秒?

不用Date对象转换时间字符串为秒的方案

当然可以实现!其实我们不需要依赖Date对象,完全可以通过手动解析时间字符串的各个部分来计算总秒数——jQuery在这里主要是帮我们更方便地遍历数组,核心逻辑是原生JavaScript的字符串处理和简单数学运算。

下面是具体的实现步骤和代码示例:

核心思路

  1. 遍历数组中的每个时间字符串
  2. 拆分出时间部分(比如8:00)和时段标识(AM/PM)
  3. 将时间拆分为小时和分钟,转换为数字类型
  4. 处理12小时制转24小时制的特殊规则:
    • 12AM对应0点,其他AM时段的小时保持不变
    • 12PM保持12点,其他PM时段的小时加12
  5. 计算总秒数:小时数*3600 + 分钟数*60

代码实现

const timeArray = ["8:00AM", "1:00PM", "12:00PM", "12:00AM"];

// 定义单个时间字符串转秒的函数
const convertToSeconds = (timeStr) => {
  // 用正则匹配分离时间和AM/PM标识
  const matchResult = timeStr.match(/([0-9:]+)(AM|PM)/);
  const [time, period] = matchResult.slice(1);
  
  // 拆分小时和分钟并转为数字
  const [hours, minutes] = time.split(':').map(Number);
  
  // 调整小时为24小时制
  let adjustedHours = hours;
  if (period === 'AM') {
    adjustedHours = hours === 12 ? 0 : hours;
  } else {
    adjustedHours = hours === 12 ? 12 : hours + 12;
  }
  
  // 计算总秒数
  return adjustedHours * 3600 + minutes * 60;
};

// 用jQuery的map方法批量处理数组
const secondsArray = $.map(timeArray, convertToSeconds);

console.log(secondsArray); // 输出结果: [28800, 46800, 43200, 0]

补充说明

如果你不想依赖jQuery,直接用原生JavaScript的Array.prototype.map也能达到同样效果,只需要把最后一行改成:

const secondsArray = timeArray.map(convertToSeconds);

逻辑完全一致,只是遍历数组的方式不同而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:57:08