我正在从输入元素中获取值并将其转换为日期格式mm/dd/yyyy,然后我正在添加一些日期,但我得到未捕获的类型错误:dt_cl.getDate 不是一个函数。
$('#dt_input').change(function() {
var dep_dt = $(this).val();
$('#eff_input').val(dep_dt);
var eff_dt = new Date(dep_dt);
var dt_cl = (eff_dt.getMonth() + 1) + '/' + eff_dt.getDate() + '/' + eff_dt.getFullYear();
var exp_dt = new Date().setDate(dt_cl.getDate()+364);
});
.HTML
<input type="text" id="dt_input">
<input type="text" id="eff_input">
问题是dt_cl
在这里被初始化为字符串:
var dt_cl = (eff_dt.getMonth() + 1) + '/' + eff_dt.getDate() + '/' + eff_dt.getFullYear();
然后你在这里打电话给getDate()
:
var exp_dt = new Date().setDate(dt_cl.getDate()+364);
字符串没有getDate()
方法。您需要根据字符串创建一个新日期,然后它将起作用。
仅供参考:你们许多人希望第一个字段是:<input type="date">
以确保输入是有效的日期格式。
$('#dt_input').change(function() {
var dep_dt = $(this).val();
$('#eff_input').val(dep_dt);
var eff_dt = new Date(dep_dt);
// dt_cl is being set to a string here:
var dt_cl = (eff_dt.getMonth() + 1) + '/' + eff_dt.getDate() + '/' + eff_dt.getFullYear();
// So, you need to take that string and make a new Date from it and then
// you can call .getDate() on that new date.
var exp_dt = new Date().setDate(new Date(dt_cl).getDate() + 364);
// The result can be seen by making yet another date using the previous one
console.log(new Date(exp_dt));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" id="dt_input">
<input type="text" id="eff_input">