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

Jquery 如果选择的时间在服务器日期/时间的2小时内,则显示警报,jquery,Jquery,基本上我有两个文本框,你可以选择“小时”00-23和“分钟”5的倍数 我试图实现的是验证,这样您就不能在当前日期/时间的2小时内预订。因此,如果现在是14:00,我尝试预订15:30,它将显示一条警报消息。如果是在两个小时后,例如16:00,那么就可以了 我只是不知道如何实现jQuery,因为时间值大于23:00等于01:00的2小时 在此方面的任何帮助都将不胜感激 以下是HTML代码:- <div class="div-jtime-content div-content left div

基本上我有两个文本框,你可以选择“小时”00-23和“分钟”5的倍数

我试图实现的是验证,这样您就不能在当前日期/时间的2小时内预订。因此,如果现在是14:00,我尝试预订15:30,它将显示一条警报消息。如果是在两个小时后,例如16:00,那么就可以了

我只是不知道如何实现jQuery,因为时间值大于23:00等于01:00的2小时

在此方面的任何帮助都将不胜感激

以下是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>

日期:
时间:
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
十七,
18
19
20
21
22
23
00
05
10
15
20
25
30
35
40
45
50
55

使用
日期对象
比较可以轻松完成您要做的事情。如果您想要两个小时,以下内容将证明是值得的:

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; 
}
第一个函数将时间转换为日期对象。请注意,您需要在此添加消毒-它仅包含重要的部分


第二个函数将当前时间与给定的TS进行比较,其中
getTime
返回给定TS的unix历元后的毫秒数。因此,2小时是7200秒,因此是7200000毫秒。

不要忘记执行服务器端检查too@John当前位置你删除了你的答案,因此我将在此处列出否决投票的原因。由于可能会发生冲突,扩展本机对象原型不是一个好主意,除非遵循ES5标准,尤其是对于可以轻松替换为
demoDate.setHours(demoDate.setHours()+2)
的对象。这里有更多:;虽然这是一个下划线主题。