2013-06-19 20 views

Antwort

29

You can add a min or max attribute to the input type=date. Das Datum muss im ISO-Format (JJJJ-MM-TT) sein. Dies wird in vielen mobilen Browsern und aktuellen Versionen von Chrome unterstützt, obwohl Benutzer ein ungültiges Datum manuell eingeben können, ohne den Datumsauswahl-Assistenten zu verwenden.

<input name="somedate" type="date" min="2013-12-25"> 

Die min und max Attribute muss ein vollständiges Datum sein; Es gibt keine Möglichkeit, "heute" oder "+0" anzugeben. Um das zu tun, müssen Sie JavaScript oder eine serverseitige Sprache verwenden:

var today = new Date().toISOString().split('T')[0]; 
document.getElementsByName("somedate")[0].setAttribute('min', today); 

http://jsfiddle.net/mblase75/kz7d2/

nur heute Ruling out, während eine vergangene oder zukünftige Termine, ist keine Option, mit hier. Wenn Sie jedoch möchten, dass morgen das Datum min ist (Ausblendung heute und alle vergangenen Daten), siehe this question, um today um einen Tag zu erhöhen.

Wie in allen anderen Fällen, in denen HTML-Formulare verwendet werden, sollten Sie das Feld serverseitig überprüfen, unabhängig davon, wie Sie es clientseitig einschränken.

+0

Funktioniert das überhaupt? – Pasta

+0

@Pasta Ja, tut es. Hatten Sie ein spezifisches Problem bei der Implementierung? – Blazemonger

+1

Wenn Benutzer ein Datum durch Eingabe anstelle von Kalender einfügen, funktioniert dies nicht :( – smartmouse

9

Ja, es ist einfach. Sie dies, indem Sie tun können

<input type="date" min="<?php echo date("Y-m-d"); ?>" > </input> 
+21

Wer sagte, dass er PHP verwendete? – Blazemonger

+1

, wenn er nicht dann verwendet er möglicherweise sein kann. ich denke, html5 bietet diese faciltiy nicht an. Wenn Sie wissen, wie dies ohne PHP zu tun, dann posten Sie Ihre Antwort plz so auch ich kann mein Wissen aktualisieren – Ritesh

+2

Erledigt: http://Stackoverflow.com/a/19253547/901048 – Blazemonger

0

Sie diese zukünftige Termine deaktivieren verwenden:
Innerhalb Sie document.ready Funktion, legen

//Display Only Date till today // 

var dtToday = new Date(); 
var month = dtToday.getMonth() + 1;  // getMonth() is zero-based 
var day = dtToday.getDate(); 
var year = dtToday.getFullYear(); 
if(month < 10) 
    month = '0' + month.toString(); 
if(day < 10) 
    day = '0' + day.toString(); 

var maxDate = year + '-' + month + '-' + day; 
$('#dateID').attr('max', maxDate); 

und in Form

<input id="dateID" type="date"/> 

Hier das Arbeiten jFiddle Demo

Verwandte Themen