基本上我有两个文本框,你可以选择'小时'00-23和'分钟',以5的倍数。
我想要实现的是验证,以便您无法在当前日期/时间的2小时内进行预订。因此,如果现在时间是14:00,并且我尝试在15:30预订,则会显示警告消息。如果是两小时后,例如16:00然后没关系。
我只是不知道我怎么能实现这个是jQuery,因为时间值大于2小时23:00是01:00。
对此的任何帮助都将非常感激。
以下是HTML代码: -
<div class="div-jtime-content div-content left div-subrow-style ui-corner-all">
<label for="txt-outbound-date" class="left p-input-label" >Date: </label>
<input type="text" id="txt-outbound-date" name="txt-outbound-date" class="input-txt-sml left required" />
<label class="left p-input-label">Time: </label>
<select name="sel-outbound-hour" id="sel-outbound-hour" class="required input-select">
<option value="" selected="selected"></option>
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
<select name="sel-outbound-min" id="sel-outbound-min" class="required input-select">
<option value="" selected="selected"></option>
<option value="00">00</option>
<option value="05">05</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
<option value="35">35</option>
<option value="40">40</option>
<option value="45">45</option>
<option value="50">50</option>
<option value="55">55</option>
</select>
</div>
答案 0 :(得分:2)
使用Date object
比较可以轻松完成您要做的事情。如果你想要两个小时,以下将证明是值得的:
function findTS() {
var ts = new Date();
ts.setHours($("#sel-outbound-hour").val());
ts.setMinutes($("#sel-outbound-min").val());
return ts;
}
function isInTwoHourDelay(ts) {
var current = new Date();
if ((current.getTime() - ts.getTime()) > 7200000) return false;
return true;
}
第一个函数将您的时间转换为Date对象。请注意,您需要在此添加清理 - 它只包含重要的位。
第二个函数将当前时间与给定TS进行比较,其中getTime
返回自给定TS的unix时期以来的毫秒数。所以,2小时是7200秒,所以7200000毫秒。