2011-11-18 105 views
1

我有兩個只讀文本框,一個文本框鏈接到jquery datepicker和另一個文本框鏈接到timepicker jquery。現在關於jquery datepicker的好處是我可以對日期進行排序,以便用戶不能在當前日期之前選擇任何日期。但是Jquery timepicker不能被放大,所以時間在當前時間之前。我想驗證當選擇的日期和時間是過去的當前日期和時間

由於這個原因,用戶可以選擇當前日期但是在當前時間之前有一個可能性。顯然這意味着選擇的時間已經超過了當前我不想要發生的那一天的時間。因此,如果日期文本框和時間文本框超過當前日期和時間,則需要進行驗證,則會顯示一條消息,指出「您選擇的日期和時間在當前日期和時間之前」,否則如果時間和日期合併在一起當前日期和時間然後顯示「」。

我該怎麼做。以下是我的最佳嘗試,但我無法實現。

<head> 
      <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
      <title>Create a Session</title> 
        <script type="text/javascript"> 

    function validation() { 
        var dateTextO = document.getElementById("datepicker"); 
        var timeTextO = document.getElementById("timepicker"); 
        var errDateTimeMsgO = document.getElementById("dateTimeAlert") 

    var currentDate = new Date() 
     var day = currentDate.getDate() 
     var month = currentDate.getMonth() + 1 
     var year = currentDate.getFullYear() 

     var currentTime = new Date() 
     var hours = currentTime.getHours() 
     var minutes = currentTime.getMinutes() 
     if (minutes < 10){ 
     minutes = "0" + minutes 
     } 
     if (hours < 10){ 
     hours = "0" + hours 
     } 

     if((dateTextO < currentDate) && (timeTextO < currentTime)){ 
      errDateTimeMsgO.innerHTML = "The Date and Time you have selected is before the Current Date and Time"; 
     } else { 
      errDateTimeMsgO.innerHTML = ""; 
     } 

      } 
    </script> 
    </head> 

    <body> 
    <form action="create_session.php" method="post" name="sessionform"> 
    <p><strong>4: Date:</strong> <input type="text" id="datepicker" readonly="readonly"></p> 
       <p><strong>5: Time:</strong> <input type="text" id="timepicker" readonly="readonly"><span class="timepicker_button_trigger"><img src="Images/clock.gif" alt="Decrease" /></span></p> 
       <div id="dateTimeAlert"></div> 
    </form> 
    </body> 

回答

0

實際new Date()生成日期是這樣的

Wed Jul 20 2011 19:09:46 GMT+0530 (IST) 

,但你的日期選擇器的時間,也許這樣的事情

28-07-2011 

那些有兩種不同的格式。所以你不能comapare,所以你必須得到那些到一個格式

var checkindatestr = document.getElementById("datepicker"); 
var dateParts = checkindatestr.split("-"); 

var checkindate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]); 
var now = new Date(); 
var difference = now - checkindate; 

你可以找到差異的2天這樣。

我會找到一個方法,告訴你如何2次.........比較:d

UPDATE

var checkindatestr = document.getElementById("datepicker"); 
    var dateParts = checkindatestr.split("-"); 
    var checkindate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]); 
    var nowdate = new Date(); 
    var differenceDate = parseInt(nowdate) - parseInt(checkindate); 

    var checkintimestr = document.getElementById("timepicker"); 
    var timeParts = checkindatestr.split(":"); 

    var currentTime = new Date(); 
    var hours = currentTime.getHours(); 
    var minutes = currentTime.getMinutes(); 

    if((differenceDate >= 0) && (parseInt(hours) >= parseInt(timeParts[0])) && (parseInt(minutes) > parseInt(timeParts[1]))){ 
     errDateTimeMsgO.innerHTML = "The Date and Time you have selected is before the Current Date and Time"; 
    } else { 
     errDateTimeMsgO.innerHTML = ""; 
    } 

     } 
+0

是什麼格式的時間選擇器時間,舉個例子 –

+0

hmm。你知道如何獲得當前的小時和分鐘,所以從document.getElementById(「timepicker」)獲取值;並將其與您的小時和時間部分進行比較。嘗試一下,如果你有任何probs告訴我......... –

+0

時間選擇器時間的一個例子:14:35。順便說一下,你已經給了我兩天的代碼,這是否假設取代我目前找到當前日期的代碼? – BruceyBandit

相關問題