电话
400 9058 355
HTML5 提交值为“YYYY-MM-DD”字符串,后端需按字符串解析而非Date对象;用FormData最稳妥,若需JSON则直接传input.value;Spring、Flask、Express等框架须显式转换格式。
提交时后端收不到值?不是你代码写错了,大概率是前后端日期格式理解不一致。HTML5 的 值始终是 "YYYY-MM-DD" 格式字符串(如 "2025-06-15"),不带时间、不带时区、不自动转成 Date 对象——浏览器只管输出这个字符串,AJAX 里直接取 .value 就行,别调 toISOString() 或 new Date().toString()。
fetch 提交 的正确姿势别手动拼 URL 参数,也别盲目转 JSON。最稳妥的是走表单数据流,让浏览器自动处理编码:
const form = document.querySelector('form');
form.addEventListener('submit', async (e) => {
e.preventDefault();
const data = new FormData(form);
// data.get('birth_date') → 直接拿到 "2025-06-15"
const res = await fetch('/api/user', {
method: 'POST',
body: data // 不设 Content-Type,让浏览器自动设为 multipart/form-data
});
});
application/json,才需手动构造对象:{ birth_date: input.value },注意 input.value 为空时是空字符串,后端要能处理JSON.stringify({ date: new
Date(input.value) }) —— 这会把 "2025-06-15" 变成无效日期对象再序列化出错FormData 自动包含 type="date" 字段,无需额外适配"2025-06-15" 却解析失败?检查这三点常见于 Python Flask、Node.js Express、Java Spring 等框架,默认不把字符串自动转成日期类型:
@DateTimeFormat(pattern = "yyyy-MM-dd") 注解datetime.strptime(request.form['date'], '%Y-%m-%d') 显式解析new Date(req.body.date) 转,但注意空值会得 Invalid Date
Date 实例或已校验格式?它返回的是 "YYYY-MM-DDTHH:mm"(如 "2025-06-15T14:30"),没有秒、没有时区信息。问题更隐蔽:
new Date("2025-06-15T14:30")),结果依赖运行环境的本地时区,容易出偏差日期传输的核心不是“怎么炫技”,而是前后端对字符串格式达成最小共识:YYYY-MM-DD 最稳,别绕弯。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...