尝试替换日期From和To计算中的值

时间:2016-02-02 14:45:18

标签: jquery jquery-ui

所以我成功地计算了日期之间的日差。我遇到的问题是我正在做的.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);
}

这也是一个小提琴:http://jsfiddle.net/javapatriot/vxb72b1L/56/

1 个答案:

答案 0 :(得分:1)

使用text()html()替换div的内容,而不是append()

jQuery('.calculated').html(diff);

或:

jQuery('.calculated').text(diff);

假设您div中的数字多于数字,则可以使用您喜欢的子容器,例如span或其他div。这是您更新的jsfiddle:Select-String