所以我成功地计算了日期之间的日差。我遇到的问题是我正在做的.append方法是在每个更改事件上添加新的差异(这是正确的),我需要知道的是如何在输入新的日期范围时替换差异。以下是我的HTML:
<input id='from' />
<input id='to' />
<div class='calculated'></div>
jQuery:
var diff = 0;
jQuery('#from').datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
});
jQuery('#to').datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
});
jQuery('#from').datepicker().bind("change", function () {
var minValue = jQuery(this).val();
minValue = jQuery.datepicker.parseDate("yy-mm-dd", minValue);
jQuery('#to').datepicker("option", "minDate", minValue);
calculate();
});
jQuery('#to').datepicker().bind("change", function () {
var maxValue = jQuery(this).val();
maxValue = jQuery.datepicker.parseDate("yy-mm-dd", maxValue);
jQuery('#from').datepicker("option", "maxDate", maxValue);
calculate();
});
function calculate() {
var d1 = jQuery('#from').datepicker('getDate');
var d2 = jQuery('#to').datepicker('getDate');
var oneDay = 24*60*60*1000;
if (d1 && d2) {
diff = Math.round(Math.abs((d2.getTime() - d1.getTime())/(oneDay)));
}
jQuery('.calculated').val(diff);
}
答案 0 :(得分:1)
使用text()
或html()
替换div
的内容,而不是append()
:
jQuery('.calculated').html(diff);
或:
jQuery('.calculated').text(diff);
假设您div
中的数字多于数字,则可以使用您喜欢的子容器,例如span
或其他div
。这是您更新的jsfiddle:Select-String