$('#date1').change(function() {
$('#date2').val( ($(this).val())+1);
});
如果我在" date1"文本框例如:" 01/01/15" ,使用此代码的结果" date2"是" 01/01/151"而不是" 02/01/15",我做错了什么?
答案 0 :(得分:1)
这可能不是最清晰的解决方案,但我认为你想要实现这样的目标:
$(function () {
$('#date1').change(function () {
var value = $(this).val(),
split = value.split('/'),
day = split[0],
month = parseInt(split[1]) - 1 // months start counting from 0
,
year = split[2];
year = lpad(year);
var date = new Date(Date.UTC(year, month, day));
// add one day
date.setDate(date.getDate() + 1);
// format final
var final = lpad(date.getDate()) + '/' + lpad((date.getMonth() + 1)) + '/' + date.getYear()
$('#date2').val(final);
});
});
// add leading zero
function lpad(n) {
n = (n <= 9) ? "0" + n : n;
return n;
}
http://jsfiddle.net/b5tx2sa9/3/
只是为了向您展示,在哪里寻找问题。在实际应用程序中,您应该始终(!)使用一个库来处理日期格式,例如: https://stackoverflow.com/a/7022296/2630208 要么: https://stackoverflow.com/a/10119138/2630208 您还必须处理用户输入(验证,格式化,替换)。