Php JavaScript中两个日期选择器值之间的天数差异?
我有两个日期选择器,如下所示:Php JavaScript中两个日期选择器值之间的天数差异?,php,javascript,datepicker,Php,Javascript,Datepicker,我有两个日期选择器,如下所示: <input type="date" name ="datepicker_start" id="datepicker" value="" class="datepicker" size="20" /> 及 我想计算以天为单位的差值,然后将以天为单位的差值与: <input type="text" name="tleave" value="Var" readonly="true" size="10" /> 其中Var是一个变
<input type="date" name ="datepicker_start" id="datepicker" value="" class="datepicker" size="20" />
及
我想计算以天为单位的差值,然后将以天为单位的差值与:
<input type="text" name="tleave" value="Var" readonly="true" size="10" />
其中Var是一个变量
然后,如果差值大于“Var”值,我需要弹出一条错误消息
基本上把它视为休假请求,当你可以为你的假期设定开始日期和结束日期,但假期的时间不能超过假期余额;如果有,系统应通知用户。
如果您使用,您将执行以下操作:var start = $('#datepicker').val(),
end = $('#datepicker2').val();
var diffInDays = moment(start).diff(moment(end), 'days');
if(diffInDays > Var) {...}
更新:
我已经更新了你的
HTML:
我已将输入类型更改为text
,因为type='date'
在小提琴中提供了意外的ui。
您必须使用jquery日期选择器作为后备
在我的小提琴中,我使用了jQuery
datepicker&moment.js
a5.5kb
库来处理日期。如果使用,您将执行以下操作:
var start = $('#datepicker').val(),
end = $('#datepicker2').val();
var diffInDays = moment(start).diff(moment(end), 'days');
if(diffInDays > Var) {...}
更新:
我已经更新了你的
HTML:
我已将输入类型更改为text
,因为type='date'
在小提琴中提供了意外的ui。
您必须使用jquery日期选择器作为后备
在我的小提琴中,我使用
jQuery
datepicker&moment.js
a5.5kb
库来处理日期。没有不必要的库
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" );
没有多余的图书馆
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" );
那很好。祝你好运。@MarcB:)请注意,
tleave
值是一个数字值,还是你的意思是在那里输入了一个变量的名称?它实际上是一个从php变量中选取的值。我想你已经说得很清楚了,但你没有问任何问题。你的问题是什么,你在哪里挣扎?代码的哪一部分没有按预期工作?这很好。祝你好运。@MarcB:)请注意,tleave
值是一个数字值,还是你的意思是在那里输入了一个变量的名称?它实际上是一个从php变量中选取的值。我想你已经说得很清楚了,但你没有问任何问题。你的问题是什么,你在哪里挣扎?代码的哪一部分没有按预期工作?(+1)处理日期的好方法。泰米尔:你能说得更详细一点吗!非常好,但我唯一不能更改选择器的原因是我将日期发布到另一个应用程序,该应用程序接受只有type='date'提供的特定格式的日期。另外,它会毁掉我的整个项目:/Check:var startDate=moment(start).format('L');(+1)处理日期的好方法。泰米尔:你能说得更详细一点吗!非常好,但我唯一不能更改选择器的原因是我将日期发布到另一个应用程序,该应用程序接受只有type='date'提供的特定格式的日期。另外,它会毁掉我的整个项目:/Check:var startDate=moment(start).format('L');它与JSFIDLE Tamil设置一起工作$(“#datepicker”).val()
确实返回了一个字符串,我认为它的格式是01/07/2013newdate(…)
返回一个日期对象,.getTime()
将在纪元后的几秒钟内将其转换为int。您可能希望使用Math.ceil(…)
或floor
运行它,以更正夏令时。您所说的type='date'
是什么意思?html5输入类型?它与JSFIDLE Tamil设置一起工作$(“#datepicker”).val()
确实返回了一个字符串,我认为它的格式是01/07/2013newdate(…)
返回一个日期对象,.getTime()
将在纪元后的几秒钟内将其转换为int。您可能希望使用Math.ceil(…)
或floor
运行它,以更正夏令时。您所说的type='date'
是什么意思?html5输入类型?
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" );