0

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

<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”值,我需要弹出一条错误消息。

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

4

2 回答 2

3

如果你使用moment.js,你会做这样的事情:

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

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

if(diffInDays > Var) {...}

更新:

我已经更新了你的小提琴

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 作为后备。

在我的小提琴中,我使用jQuerydatepicker 和moment.js一个5.5kb库来处理日期。

于 2013-07-03T16:51:06.860 回答
2

没有不需要的库

    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" );
于 2013-07-03T17:30:56.130 回答