2013-04-20 13 views
18

Chciałem wyłączyć całą przeszłą datę przed datą bieżącą, a nie z aktualną datą. Staram przez bootstrap datepicker biblioteki "bootstrap-datepicker" i za pomocą następującego kodu:Datepicker datapicker wyłączanie dat przeszłych bez aktualnej daty

$('#date').datepicker({ 
    startDate: new Date() 
}); 

To działa dobrze. Ale wyłącza datę do dzisiaj.

Jako przykład, jeśli dzisiaj jest 04-20-2013 i wyłączyć wcześniejsze daty, ustawiając opcję startDate: new Date(). ale jestem w stanie wybrać datę od 04-21-2013.

AKTUALIZACJA: mogę go rozwiązać w następujący sposób dla strefie UTC:

var d = new Date(); 
options["startDate"] = new Date(d.setDate(d.getDate() - 1)); 

lub startDate: "+0d"

Ale te metody nie działają, gdy UTC jest dzień naprzód. Dla mojego klienta w Kalifornii oznacza to, że o godzinie 17:00 mój klient nie może już wybrać swojej lokalnej daty aktualnej jako daty prawidłowej. Aby to naprawić tymczasowo używam startDate: "-1d", ale oczywiście przed 5 oznacza to, że wczoraj jest widoczny.

Czy ktoś wymyślił teraz lepszą metodę, ponieważ nie chcę informować użytkowników o wprowadzeniu daty UTC?

Z góry dziękuję.

+0

Używasz Bootstrap 2.0.4+ jQuery 1.7.1 +? –

+1

Używam Bootstrap v2.2.1 i jQuery 1.8.1 – itskawsar

Odpowiedz

35
var date = new Date(); 
date.setDate(date.getDate()-1); 

$('#date').datepicker({ 
    startDate: date 
}); 
+0

, jeśli strefa czasowa zmieni się w przyszłości, co się stanie? – itskawsar

+1

Nie jestem do końca pewien. Możesz rzucić okiem na ten wątek: [Musisz wyświetlić czas lokalny nad przejściami DST używając JavaScript Date Object] (http://stackoverflow.com/questions/7310560/need-to-display-local-times-over- dst-transition-using-javascript-date-object) –

+0

Proszę sprawdzić moje zaktualizowane pytanie. dzięki – itskawsar

6

var nowDate = new Date(); 
 
var today = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), 0, 0, 0, 0); 
 
\t $('#date').datetimepicker({ 
 
\t \t startDate: today 
 
\t });

16

HTML

<input type="text" name="my_date" value="4/26/2015" class="datepicker"> 

JS

jQuery(function() { 
    var datepicker = $('input.datepicker'); 

    if (datepicker.length > 0) { 
    datepicker.datepicker({ 
     format: "mm/dd/yyyy", 
     startDate: new Date() 
    }); 
    } 
}); 

To podkreśli domyślną datę jako 4/26/2015 (kwi 26, 2015) w kalendarzu ar po otwarciu i wyłącza wszystkie daty przed bieżącą datą.

15

Zastosowanie minDate

var date = new Date(); 
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()); 

$('#date').datepicker({ 
    minDate: today 
}); 
+2

Twoja jest jedyną odpowiedzią, która zadziałała dla mnie. Dzięki! –

+1

dla uproszczenia użyj 'moment.js' jak' minDate: moment() ' –

+0

To i @SaahithyanVigneswaran powinny być poprawnymi odpowiedziami. – JohnA10

1
<script type="text/javascript"> 
$('.datepicker').datepicker({ 
    format: 'dd/mm/yyyy', 
    todayHighlight:'TRUE', 
    startDate: '-0d', 
    autoclose: true, 
}) 
+0

Czy możesz wyjaśnić, dlaczego to powinno działać i dlaczego jest to lepsze rozwiązanie niż zaakceptowana odpowiedź sprzed 2 lat? –

2

Wyłącz wszystko przeszłość data

<script type="text/javascript"> 
     $(function() { 
      /*--FOR DATE----*/ 
      var date = new Date(); 
      var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()); 

      //Date1 
      $('#ctl00_ContentPlaceHolder1_txtTranDate').datepicker({ 
       format: 'dd-mm-yyyy', 
       todayHighlight:'TRUE', 
       startDate: today, 
       endDate:0, 
       autoclose: true 
      }); 

     }); 
</script> 

Wyłącz wszystkie przyszłe data

var date = new Date(); 
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()); 

    //Date1 
    $('#ctl00_ContentPlaceHolder1_txtTranDate').datepicker({ 
     format: 'dd-mm-yyyy', 
     todayHighlight:'TRUE', 
     minDate: today, 
     autoclose: true 
    }); 
7

użycie

startDate: '-0d' 

Jak

$("#datepicker").datepicker({ 
    startDate: '-0d', 
    changeMonth: true 
}); 
5

Można użyć atrybutu danych:

<div class="datepicker" data-date-start-date="+1d"></div> 
3

Tutaj jest

<script> 
      $(function() { 
       var date = new Date(); 
       date.setDate(date.getDate() - 7); 

      $('#datetimepicker1').datetimepicker({ 
       maxDate: 'now', 
       showTodayButton: true, 
       showClear: true, 
       minDate: date 
      }); 
     }); 
    </script> 
0

wyłączyć przeszłości datę wystarczy użyć:

$('.input-group.date').datepicker({ 
     format: 'dd/mm/yyyy', 
     startDate: 'today' 
    }); 
0

Spróbuj:

$(function() { 
    $('#datetimepicker').datetimepicker({ minDate:new Date()}); 
}); 
1

Proszę odnieść się do skrzypiec http://jsfiddle.net/Ritwika/gsvh83ry/

**With three fields having date greater than the ** 
<input type="text" type="text" class="form-control datepickstart" /> 
<input type="text" type="text" class="form-control datepickend" /> 
<input type="text" type="text" class="form-control datepickthird" /> 

var date = new Date(); 
date.setDate(date.getDate()-1); 
$('.datepickstart').datepicker({ 
autoclose: true, 
todayHighlight: true, 
format: 'dd/mm/yyyy', 
    startDate: date 
}); 
$('.datepickstart').datepicker().on('changeDate', function() { 
    var temp = $(this).datepicker('getDate'); 
    var d = new Date(temp); 
    d.setDate(d.getDate() + 1); 
    $('.datepickend').datepicker({ 
autoclose: true, 
format: 'dd/mm/yyyy', 
startDate: d 
}).on('changeDate', function() { 
    var temp1 = $(this).datepicker('getDate'); 
    var d1 = new Date(temp1); 
    d1.setDate(d1.getDate() + 1); 
    $('.datepickthird').datepicker({ 
autoclose: true, 
format: 'dd/mm/yyyy', 
startDate: d1 
}); 
}); 
}); 
-1

Następujące pracował dla mnie

$('.input-group.date').datepicker({ 
    format: 'dd/mm/yyyy', 
    startDate: new Date() 
}); 
+0

To nie odpowiada na pytanie. Powinieneś dać odpowiedź, która rozwiązuje problem, wyjaśnij, dlaczego to działa, wyjaśnij, jak to działa, w ten sposób inni ludzie mogą się uczyć. Jak wymyśliłeś tę odpowiedź? To jest coś, co powinieneś uwzględnić w swoich odpowiedziach. Twoja odpowiedź nie jest pomocna dla innych czytelników w jej aktualnym stanie. – GrumpyCrouton

Powiązane problemy