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

如何正确获取和设置time类型input输入框的value值?

取值报错修复

你触发报错的原因有两个:

  1. getElementById()方法仅需传入id的纯文本值,不需要加#前缀,#是querySelector()系列方法的选择器语法,你传入#time1时会尝试查找id为#time1的元素,找不到就返回null,自然无法读取value属性。
  2. value是DOM元素的属性,不是方法,不需要加括号调用。
    正确的取值代码如下:
console.log(document.getElementById("time1").value)
时间格式转换与赋值

type="time"的input仅支持24小时制的HH:mm格式作为输入值,带AM/PM的12小时制字符串无法直接赋值,需要先做格式转换,你可以用下面的转换函数处理:

// 入参为12小时制时间字符串,例如"06:00 AM"、"11:30 PM"
function convertTimeTo24h(timeStr) {
  const [timePart, period] = timeStr.split(' ')
  let [hours, minutes] = timePart.split(':').map(Number)

  // 处理12小时制转24小时制逻辑
  if (period.toUpperCase() === 'PM' && hours !== 12) hours += 12
  if (period.toUpperCase() === 'AM' && hours === 12) hours = 0

  // 补前导零后拼接为标准HH:mm格式
  return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`
}

转换完成后直接赋值即可:

const targetTime = "06:00 AM"
document.getElementById("time1").value = convertTimeTo24h(targetTime)
补充注意事项
  • time类型input的value属性永远返回24小时制的HH:mm格式字符串,取值时直接读取属性即可,不需要额外转换。
  • 如果你的12小时制时间字符串存在其他格式变种,可以调整匹配逻辑拆分时间和时段标识即可。

内容的提问来源于stack exchange,提问作者John Phillip Abello

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:06:00