jQuery $.get传递变量d失效,求排查及解决思路
问题原因分析与解决方案
这问题我之前碰到过类似的,大概率是日期格式的位数不一致导致的!
你硬编码的'27-04'是两位日期+两位月份的格式,但用date.getDate() + "-" + (date.getMonth()+1)生成的变量d,当日期或月份是个位数的时候(比如5号、3月),会变成"5-3"这种单数字格式。如果你的MySQL数据库里存储的日期字符串是两位补零的格式(比如"05-03"),那参数格式不匹配,自然查不到数据。
解决办法:给日期和月份补零
写一个简单的补零函数,确保日期和月份始终是两位数字:
// 给数字补零,确保返回两位字符串 function padZero(num) { return num < 10 ? '0' + num : num; }
然后修改生成d的代码:
var d = padZero(date.getDate()) + "-" + padZero(date.getMonth() + 1);
这样不管日期是1号还是31号,月份是1月还是12月,生成的d都会是"01-01"、"31-12"这种两位格式,和数据库里的存储格式一致,参数传递后就能正常查询到数据了。
另外你可以先在控制台打印一下变量d的值,看看是不是和你硬编码的格式不一样,这一步能快速验证问题所在~
内容的提问来源于stack exchange,提问作者Johan Buddenberg
相关产品推荐
相关产品推荐

