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

如何使用jQuery/JavaScript从时间选择器获取时间并转换为MS-SQL time(7)格式

获取时间选择器值并转换为MS-SQL time(7)格式(原生JS + jQuery实现)

首先得明确MS-SQL的time(7)格式要求是 HH:mm:ss.fffffff——也就是24小时制的时:分:秒,再加上7位毫秒值。结合你提供的不带秒的时间选择器,我分别给你原生JS和jQuery的实现方案:

原生JavaScript实现

步骤1:获取时间选择器的输入值

先通过ID拿到你的时间输入框,取出用户选择的时间字符串:

const inTimeInput = document.getElementById('tpInTime');
const selectedTime = inTimeInput.value; // 示例输出:"14:30"

步骤2:转换为time(7)格式

因为你的选择器不带秒,我们可以补全秒为00,毫秒为0000000。如果之后你切换到带秒的选择器,也可以轻松调整逻辑:

function convertToSqlTime7(timeStr) {
  // 拆分时分,处理HH:mm格式的输入
  const [hours, minutes] = timeStr.split(':');
  
  // 拼接成符合要求的time(7)格式
  return `${hours}:${minutes}:00.0000000`;
}

// 使用示例
const sqlFormattedTime = convertToSqlTime7(selectedTime);
console.log(sqlFormattedTime); // 输出:"14:30:00.0000000"

如果你的时间选择器支持返回带秒的时间(比如HH:mm:ss),可以修改函数兼容两种格式:

function convertToSqlTime7(timeStr) {
  const timeParts = timeStr.split(':');
  let hours = timeParts[0], minutes = timeParts[1], seconds = '00';
  
  // 如果有秒的部分就用用户选择的,否则默认00
  if (timeParts.length === 3) {
    seconds = timeParts[2];
  }
  
  return `${hours}:${minutes}:${seconds}.0000000`;
}

jQuery实现

jQuery的思路和原生JS一致,只是获取DOM元素的方式更简洁:

步骤1:获取时间选择器的值

const selectedTime = $('#tpInTime').val(); // 同样得到类似"14:30"的字符串

步骤2:转换格式

可以直接复用上面的转换函数,或者封装成jQuery方法(按需选择):

function convertToSqlTime7(timeStr) {
  const [hours, minutes] = timeStr.split(':');
  return `${hours}:${minutes}:00.0000000`;
}

// 使用示例
const sqlFormattedTime = convertToSqlTime7($('#tpInTime').val());

进阶:利用时间选择器插件的API(如果用了第三方插件)

如果你用的是比如Bootstrap Timepicker这类插件,它自带获取时间对象的方法,能更精准地提取时分秒:

// jQuery版本
const timeObj = $('#tpInTime').timepicker('getTime');
// 格式化时分秒为两位数字
const hours = timeObj.getHours().toString().padStart(2, '0');
const minutes = timeObj.getMinutes().toString().padStart(2, '0');
const seconds = timeObj.getSeconds().toString().padStart(2, '0');
// 拼接成time(7)格式
const sqlFormattedTime = `${hours}:${minutes}:${seconds}.0000000`;

注意事项

  • 记得处理输入为空的情况,避免split方法报错,可以在转换函数开头加个判断:
    function convertToSqlTime7(timeStr) {
      if (!timeStr) return null; // 或者返回默认时间,比如"00:00:00.0000000"
      // ...后续逻辑
    }
    
  • 如果需要更精确的毫秒值(比如选择器支持),可以从时间对象中获取毫秒数,再转换为7位:
    const milliseconds = (timeObj.getMilliseconds() * 10000).toString().padStart(7, '0');
    const sqlFormattedTime = `${hours}:${minutes}:${seconds}.${milliseconds}`;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:12:50