如果选择的时间在服务器日期/时间的2小时内,则显示警报

时间:2013-05-15 13:29:59

标签: jquery

基本上我有两个文本框,你可以选择'小时'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>

1 个答案:

答案 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毫秒。