2012-07-05 51 views
0

我越來越像startTime 13:30:00 endTime 14:15:00(24小時制)通過拖動html表單元格。 在hiddenfield我正在存儲值開始時間和結束時間如何檢查失效時間

   var hidStartTime=13:30:00; 
       var hidEndTime=14:15:00; 

我要檢查,如果用戶STARTIME和結束時間是過去比較,目前的客戶端機器的時間,然後必須生成警報(「你不能讓修爲過去的約會時間。」); 如何檢查

  var todaysDate = new Date(); 
      var currentHour = todaysDate.getHours(); 
      var currentMinutes = todaysDate.getMinutes(); 

      if (currentHour < endTimeHour) 
      { 
       alert("You can not allow to fix appointment for past time."); 
       return false; 
      } 
+0

你的問題是什麼? – roel

+0

我必須檢查用戶的startime和endtime是否與當前客戶機時間相比較,然後必須生成警報「」; – John

回答

0

您可以比較2個Date對象是這樣的:

// Get current date on the client machine 
var currentDateTime = new Date(); // "Thu, 05 Jul 2012 08:05:57 GMT" 

// Now if you have a date string of 8:30 on the same day 
var endDateTime = Date.parse("Thu, 05 Jul 2012 08:30:00 GMT"); 

if (currentDateTime > endDateTime) { 
    alert("..."); 
} 

最困難的部分可能是日期字符串組成,其可以使用功能日期能夠理解的格式。解析()

+0

kayo:hav這次比較var hidStartTime = 13:30:00; var hidEndTime = 14:15:00;目前機器時間爲 – John

+0

好。看起來Achal已經發布了正確的答案。還要注意,如果有人從不同的時區訪問網站,那麼它不會給出正確的結果。 –

+0

如果隱藏字段包含時區信息和諸如「Thu,05 Jul 2012 08:30:00 GMT」的絕對時間,那將會很好。服務器端應該生成這樣一個字符串。 –

2

假設日期將成爲今天,您可以使用開始和結束時間創建Date對象,然後將它們與當前日期進行比較,就像這樣。

var currDate = new Date(); 
var startDate = setTime(hidStartTime); 
var endDate = setTime(hidEndTime); 

// given an input string of format "hh:mm:ss", returns a date object with 
// the same day as today, but the given time. 
function setTime(timeStr) { 
    var dateObj = new Date();   // assuming date is today 
    var timeArr = timeStr.split(':'); // to access hour/minute/second 

    var hour = timeArr[0]; 
    var minute = timeArr[1]; 
    var second = timeArr[2]; 

    dateObj.setHours(hour); 
    dateObj.setMinutes(minute); 
    dateObj.setSeconds(second); 
    return dateObj; 
} 

// now we can subtract them (subtracting two Date objects gives you their 
// difference in milliseconds) 
if (currDate - startDate < 0 || currDate - endDate < 0) { 
    alert("Unfortunately, you can't schedule a meeting in the past. 
      We apologize for the inconvenience."); 
} 
+0

Achal:var startDate = setTime(hidStartTime); var endDate = setTime(hidEndTime); startDate和endDate我得到今天的日期 – John

+0

今天的日期,或今天的日期*和*時間?它應該返回與今天相同的「日期」,但具有不同的時間。 –

+0

參見hidStartTime = 09:15:00 hidEndTime = 10:00:00所以現在當前時間是03:15:00所以肯定不得不產生警報,但它不會 – John