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

datetime-local输入时间添加分钟后赋值报错:格式不符合要求

问题分析与解决

报错原因

你遇到的格式错误,是因为Date.toISOString()返回的字符串带有时区后缀Z和毫秒部分(比如2024-02-05T22:12:00.000Z),而你的时间输入框只接受不带时区标识的格式:yyyy-MM-ddThh:mm,或可选的yyyy-MM-ddThh:mm:ss/yyyy-MM-ddThh:mm:ss.SSS。

另外你的代码第一行存在逻辑错误:$("#apptStartTime").val()返回的是字符串类型,直接调用toISOString()会触发TypeError,正确的做法是先把输入值转为Date对象。

修正后的代码

// 获取开始时间输入值并转为Date对象
var startDate = new Date($("#apptStartTime").val());
// 假设从后端获取的服务时长为duration(示例用10,实际替换为接口返回值)
var duration = 10;
// 计算结束时间:加上服务时长(分钟)
var endDate = new Date(startDate.setMinutes(startDate.getMinutes() + parseInt(duration)));
// 格式化为输入框要求的格式(截取到分钟,去掉时区和毫秒)
var formattedEndTime = endDate.toISOString().slice(0, 16);
// 赋值给结束时间输入框
$("#apptEndTime").val(formattedEndTime);

关键说明

  • slice(0,16):截取toISOString()返回值的前16位,得到yyyy-MM-ddThh:mm格式,完全匹配输入框要求。如果需要保留秒数,可改为slice(0,19)得到yyyy-MM-ddThh:mm:ss格式。
  • 后端返回的时长是字符串类型,需用parseInt()转为数字后再进行时间计算。
  • 切换服务时,只需把duration替换为接口返回的字符串值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:17:34