2016-08-02 42 views
-1

我已經嘗試了許多方法來驗證日期和時間與Javascript函數,但似乎沒有工作。我想提醒用戶,當他們的日期輸入是過去的日期,而時間開始不能與時間結束相同,並且不能晚於時間結束。 我的HTML代碼:在javascript中驗證時間和日期爲html格式

<p> 
<label> Date: 
<input type="date" id="date" name="date" required /> 
</label> 
</p> 

<p> 
<label> Time start: 
<input type="time" id="timeStart" name="timeStart" required /> 
</label> 
</p> 

<p> 
<label> Time end: 
<input type="time" id="timeEnd" name="timeEnd" required /> 
</label> 
</p> 

的Javascript我想:

function valiDate(date) { 
    var today=new Date(); 
    var inputDate=document.getElementById("date").value; 

    if (inputDate < today) { 
     alert("Your event cannot happen in the past."); 
    } 
    } 



function checkDate(date) 
    { 

    var dateInput=document.getElementById("date").value; 
    var parts=date.split("/"); 
    var yearInput=parts[0]; 
    var monthInput=parts[2]; 
    var dayInput=parts[3]; 


    var minYear = 1902; 
    var maxYear = (new Date()).getFullYear(); 
    var maxMonth = (new Date()).getMonth(); 
    var currentDay = (new Date()).getDate(); 

    if (yearInput<maxYear || monthInput<maxMonth || dayInput<currentDay) { 
     alert("Event cannot be held in the past. Move on."); 
    } 
} 
+2

郵政JavaScript的,你說你嘗試請。 – j08691

+0

還發布任何與您嘗試的js控制檯中的錯誤。或者也許總結一下你嘗試過的方法,那些方法不適合你。 – scrappedcola

回答

0

用於比較日期的方法是錯誤的。

d1.getTime() === d2.getTime(); 
d1.getTime() !== d2.getTime(); 

使用getTime()運算符或dates.compare()函數。 如果你想分割日期,使用' - '來分割它們。

這裏是一個工作的jsfiddle: https://jsfiddle.net/BoyWithSilverWings/rc08otjc/

0

請試試這個

 function validDate() {  
    var today=new Date(); 
    var inputDate = new Date(document.getElementById("date").value); 
    today.setHours(0,0,0,0);  
    if (inputDate < today) { 
     alert("Your event cannot happen in the past.");   
    } 
    else { 
     var startTime = TimeinMillisec(document.getElementById("timeStart").value); 
     var endTime = TimeinMillisec(document.getElementById("timeEnd").value); 

     if(startTime > endTime) 
      alert("Event cannot be held"); 
      else 
      alert("Done"); 

    } 
    } 



    function TimeinMillisec(gTime) 
    { 
    var parts=gTime.split(" "); 
    var hhmm = parts[0].split(":"); 
     hhmm[0] = parseInt(hhmm[0]); 
    if(parts[1].toLowerCase() === "pm") 
     hhmm[0] = parseInt(hhmm[0]+12); 
     var seconds = parseInt(((+hhmm[0]) * 60 * 60) + ((+hhmm[1]) * 60));  
    return seconds; 
    }