2016-08-02 5 views
-1

Ich habe viele Möglichkeiten versucht, um das Datum und die Uhrzeit mit Javascript-Funktionen zu überprüfen, aber keine scheint zu funktionieren. Ich möchte die Benutzer warnen, wenn ihre Datumseingabe ein vergangenes Datum hat, während der Zeitstart nicht mit dem Ende der Zeit identisch sein kann und nicht später als das Ende der Zeit. Mein HTML-Codes:Validierung von Zeit und Datum in Javascript für HTML-Formular

<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 Ich habe versucht:

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

Schreiben Sie die JavaScript Sie sagen, dass Sie versucht haben, bitte. – j08691

+0

Veröffentlichen Sie auch alle Fehler, die mit der js, die Sie ausprobiert haben, in der Konsole waren. Oder fassen Sie zusammen, was Sie versucht haben und was mit diesen Methoden für Sie nicht funktioniert hat. – scrappedcola

Antwort

0

Das Verfahren zum Vergleich von Daten verwendet, ist falsch.

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

Verwenden Sie den Operator getTime() oder dates.compare(). Wenn Sie die Daten teilen möchten, verwenden Sie '-', um sie zu teilen.

Hier ist ein funktionierendes jsFiddle: https://jsfiddle.net/BoyWithSilverWings/rc08otjc/

0

Bitte versuchen Sie diese

 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; 
    }