3

Ich benutze diese Datetime:
http://eonasdan.github.io/bootstrap-datetimepicker/Options/
Grundsätzlich möchte ich maxDate: moment() setzen, das heißt MaxDate sollte nun begrenzt werden. Das Problem ist, wenn der Datepicker geöffnet ist, ist maxDate nicht jetzt() mehr. Ich möchte es MaxDate jetzt jedes Mal wenn der Datepicker angezeigt wird festlegen.bootstrap datetimepicker - maxDate relativ zu jetzt setzen?

Ich möchte es global erzwingen, wenn möglich, nicht auf jeder datetimepicker() Instanz angeben. Ist es möglich, mit moment.js ein relatives Datum anzugeben?

Sehen Sie diese Geige:
https://jsfiddle.net/0Ltv25o8/3281/
ich MaxDate gesetzt jetzt. Sie werden nach dem Laden der Seite sehen, dass Sie die aktuellen Minuten nicht mit den Pfeiltasten auswählen können.

+0

Ich schlage vor, Sie da Einstellung 'MaxDate einen entsprechenden Code-Schnipsel hinzuzufügen: Moment()' sollten zukünftige Termine genug sein, um zu deaktivieren (für jede Öffnung des Picker). Wahrscheinlich ist das Problem an anderer Stelle in Ihrem Code. Sie können den Klassenselektor bei der Picker-Initialisierung verwenden, um die Konfiguration für alle Ihre Instanzen oder das Cache-Konfigurationsobjekt in einer Variablen festzulegen, und dann die Variable verwenden, anstatt dieselben Werte zu wiederholen. Sie können Momentenobjekte mit 'add' /' subtract' usw. manipulieren, wie in [docs] ( – VincenzoC

Antwort

4

Wie wäre es benutzerdefinierte Version von Datepicker-Plugin?

Ich habe den neuen Parameter maxDateNow (irgendwelche Ideen für einen besseren Namen?) Hinzugefügt, der Datum/Zeit bis zur Gegenwart auswählen kann.

$('#datetimepicker1').datetimepicker({maxDateNow: true, format:'DD/MM/YYYY HH:mm'}); 

Sehen Sie diese fiddle

2

Sie können sich das Ereignis dp.show anhören, sodass Sie jedes Mal, wenn der Picker angezeigt wird, maxDate auf die aktuelle Uhrzeit ändern können. Hier ist ein Codebeispiel:

$('#datetimepicker1').datetimepicker({ 
 
    maxDate: moment(), 
 
    format:'DD/MM/YYYY HH:mm' 
 
}).on('dp.show', function(){ 
 
    $('#datetimepicker1').data("DateTimePicker").maxDate(moment()); 
 
});
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/> 
 
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.css" rel="stylesheet"/> 
 

 
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script> 
 

 
<div class="form-group"> 
 
    <div class="input-group date" id="datetimepicker1"> 
 
    <input type="text" class="form-control" /> 
 
    <span class="input-group-addon"><span class="glyphicon-calendar glyphicon"></span></span> 
 
    </div> 
 
</div>

+0

) beschrieben. Danke. Ich habe diese Option des Ereignisrückrufs tatsächlich in Erwägung gezogen. Das Problem - wie erzwinge ich das global, für jeden Datapicker, auf den ich jetzt einstellen möchte() als max oder min? Ich benutze bereits meine eigene Default-Objektkonfiguration und benutze jQuery.extend jedes Mal, wenn ich einen neuen Datumsauswahlpunkt erstelle. – user3599803

+0

Können Sie einen Klassenselektor sowohl im Init-Code als auch im Ereignis-Callback-Code verwenden? – VincenzoC

+0

nein, ich habe datepickers, die dynamisch eingefügt werden (ajax heavy web-app), einige eingaben existieren noch nicht beim laden der seiten. Ich könnte den Event-Callback-Code zu jedem Datapicker hinzufügen, den ich brauche, aber das wäre etwas unordentlich für meinen Code. schade, ich kann jetzt nicht angeben - relatives max/min date. :( – user3599803

Verwandte Themen