我从输入元素获取值并将其转换为日期格式mm / dd / yyyy然后我添加了一些日期,但我得到了未捕获的TypeError: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">
答案 0 :(得分:2)
问题是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">