You need to enable JavaScript to run this app. 如何使用jQuery或JavaScript设置date类型input输入框的value值
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery或JavaScript设置date类型input输入框的value值

报错原因

HTML5 原生 date 类型输入框的 value 仅支持 yyyy-MM-dd 格式的字符串。你直接传入 Date 对象赋值时,jQuery 会自动将 Date 对象转为带时区、时分秒的 ISO 8601 格式字符串,和输入框要求的格式不匹配,因此抛出报错。

解决方案

只需要将 Date 对象手动格式化为 yyyy-MM-dd 格式的字符串再赋值即可,两种常用实现方式如下:

方式1:使用toLocaleDateString格式化

var date1 = new Date($("#date1").val() + "T00:00");
date1.setDate(date1.getDate() + 30);  // 计算30天后的日期

// 格式化日期为yyyy-MM-dd
const formattedDate = date1.toLocaleDateString('zh-CN', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit'
}).replaceAll('/', '-');

const $date2 = $("#date2");  // date类型的输入框
$date2.val(formattedDate);

方式2:手动拼接日期(兼容性更好)

如果需要兼容低版本浏览器,可以手动拼接日期字符串,注意月份需要+1、不足两位补前导零:

var date1 = new Date($("#date1").val() + "T00:00");
date1.setDate(date1.getDate() + 30);  // 计算30天后的日期

const year = date1.getFullYear();
const month = String(date1.getMonth() + 1).padStart(2, '0');
const day = String(date1.getDate()).padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;

const $date2 = $("#date2");  // date类型的输入框
$date2.val(formattedDate);

内容的提问来源于stack exchange,提问作者Stephen H. Anderson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 15:24:03