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

PSQL获取的日期无法填充至type="date"表单问题求助

问题原因

HTML 的 <input type="date"> 对 value 的格式有严格要求,必须是 YYYY-MM-DD 格式的字符串,而你用 toLocaleDateString 生成的 mm/dd/yyyy 格式不符合这个标准,所以输入框无法识别并显示该值。

解决方案

你需要将日期转换为 YYYY-MM-DD 格式,以下是两种简单可行的实现方式:

方法1:利用 toISOString 快速截取

Date 对象的 toISOString() 方法会生成类似 2023-04-05T05:00:00.000Z 的字符串,直接截取前10位就能得到符合要求的格式:

const dateOfOrder = new Date(job.date_of_order).toISOString().split('T')[0];

方法2:手动拼接日期组件

如果需要更精确控制(比如处理时区偏移),可以手动获取年、月、日并补零后拼接:

const dateObj = new Date(job.date_of_order);
const year = dateObj.getFullYear();
const month = String(dateObj.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需+1并补零
const day = String(dateObj.getDate()).padStart(2, '0');
const dateOfOrder = `${year}-${month}-${day}`;
修改后的完整组件代码
function JobForm({ job}) {
    const dateOfOrder = new Date(job.date_of_order).toISOString().split('T')[0];
    return (
        <Form>
            <Form.Group>
                <Form.Label htmlFor="TransportDate">Date</Form.Label>
                <input type="date" className="form-control" id="TransportFrom" required value={dateOfOrder}></input>
            </Form.Group>
        </Form>
    )
}

注:如果原始日期存在时区偏移问题,需根据业务需求调整日期的时区处理逻辑,确保生成的 YYYY-MM-DD 是你期望的日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:30:29