JavaScript中两个日期选择器值之间的天数差异?

时间:2013-07-03 16:45:34

标签: php javascript datepicker

我有两个日期选择器如下:

<input type="date" name ="datepicker_start" id="datepicker" value=""  class="datepicker" size="20" />

<input type="date" name ="datepicker_end" id="datepicker2"  value="" class="datepicker" size="20" />

我想计算天数差异,然后将天数差异与:

进行比较
<input type="text" name="tleave" value="Var" readonly="true" size="10" />

其中Var是变量。

然后,如果差异大于“Var”值,我需要弹出错误消息。

当您可以设置休假的开始和结束日期时,基本上将其视为请假申请,但休假的持续时间不能超过休假余额;如果是,系统应该通知用户。

2 个答案:

答案 0 :(得分:3)

如果您使用 moment.js ,则可以执行以下操作:

var start = $('#datepicker').val(),
end = $('#datepicker2').val();

var diffInDays = moment(start).diff(moment(end), 'days');

if(diffInDays > Var) {...}

更新

我已更新 fiddle

HTML:

<input type="text" name="datepicker_start" id="datepicker" value="" class="datepicker" size="20" />
<input type="text" name="datepicker_start2" id="datepicker2" value="" class="datepicker" size="20"   />

<button>number of days</button>

JS:

$('#datepicker, #datepicker2').datepicker();

$('button').click(function () {
    var start = $('#datepicker').val(),
        end = $('#datepicker2').val();

    var diffInDays = moment(end).diff(moment(start), 'days');

    alert(diffInDays);
});

我已将输入类型更改为text,因为type='date'在小提琴中给出了意想不到的ui。 您必须使用jquery datepicker作为后备。

在我的小提琴中,我使用了jQuery datepicker&amp; moment.js 5.5kb库来处理日期。

答案 1 :(得分:1)

没有不需要的库

    var start = new Date( $('#datepicker').val() ).getTime(),
        end = new Date( $('#datepicker2').val() ).getTime();

    //1000 * 60 * 60 * 24 = 1 day = 86400000
    alert( ((end - start) / 86400000) + " days" );