Witam dopiero zaczynam przygodę z JavaScript mam problem z wykonaniem zadania. Chciałbym aby po wybraniu daty wydarzyły się dwa zdarzenia. Jeżeli użytkownik wybierze datę w datapicker, będzie ona starsza od dzisiejszej daty o 3 lata pojawi się div, który będzie zawierał jakiś element. W przypadku kiedy data będzie mieściła się w przedziale do 3 lat pojawi się div z innym zdarzeniem. Kurcze nie wiem jak się do tego zabrać. Czy ktoś pomógłby ogarnąć sprawę. Dzięki za pomoc. Pozdrawiam.
- Rejestracja:około 7 lat
- Ostatnio:prawie 7 lat
- Postów:12
cerrato napisał(a):
Wrzuć na jsfiddle.net szkielet tego, co masz (bo zakładam, że poza napisaniem posta na forum zrobiłeś coś jeszcze) - chętnie pomożemy :)
Zrobiłem coś takiego, ale pewnie nie ma to nic wspólnego z tym co chcę osiągnąć. Na razie sprawdzam to w alertach, później chciałbym dodać div. Czy jest to dobry kierunek? :)
https://codepen.io/zafon/pen/PavQgp
A czemu nie zrobiłeś tego w oparciu o <input type="date">
?
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date
https://www.w3schools.com/tags/att_input_type_date.asp
No to po pierwsze - zrób nowego (albo uaktualnij tamtego codepen'a) tak, aby zrobić to w oparciu o <input type="date">
oraz określić zakres dopuszczalnych dat, a następnie podeślij link.
A po drugie - skoro masz konto, to czemu część postów dajesz z konta, a część jako anonim (bo zakładam, że wszystkie są pisane przez Ciebie)? Pisz jako Ty - będzie wtedy porządniej i czytelniej.
- Rejestracja:około 7 lat
- Ostatnio:prawie 7 lat
- Postów:12
cerrato napisał(a):
No to po pierwsze - zrób nowego (albo uaktualnij tamtego codepen'a) tak, aby zrobić to w oparciu o
<input type="date">
oraz określić zakres dopuszczalnych dat, a następnie podeślij link.
A po drugie - skoro masz konto, to czemu część postów dajesz z konta, a część jako anonim (bo zakładam, że wszystkie są pisane przez Ciebie)? Pisz jako Ty - będzie wtedy porządniej i czytelniej.
Przepraszam, nie spojrzałem że zostałem wylogowany. Mój błąd. Chciałbym aby nie było dopuszczalnych zakresów dat, tylko użytkownik mógł wybrać datę np 1995.02.13 i pokazał się allert który będzie sprawdzał, że ta data została przekroczona o 3 lata od dnia dzisiejszego.

- Rejestracja:około 10 lat
- Ostatnio:ponad 4 lata
- Lokalizacja:Piwnica
- Postów:7697
a może spróbuj datapicker.js, bootstrap z tego korzysta i działa ok
Nie musisz określać zakresów, ale sam wcześniej napisałeś Nie wiedziałem, że w type="date" możliwe jest blokowanie daty przyszłej
- ja to zrozumiałem tak, że musiałeś korzystać z jakichś dodatkowych skryptów/bibliotek, bo byłeś przekonany, że wbudowane w przeglądarki mechanizmy tego nie mają. Jeśli nie jest Ci to potrzebne do niczego, to przecież nie musisz dodawać opcji ograniczających zakres.
- Rejestracja:około 7 lat
- Ostatnio:prawie 7 lat
- Postów:12
cerrato napisał(a):
Nie musisz określać zakresów, ale sam wcześniej napisałeś
Nie wiedziałem, że w type="date" możliwe jest blokowanie daty przyszłej
- ja to zrozumiałem tak, że musiałeś korzystać z jakichś dodatkowych skryptów/bibliotek, bo byłeś przekonany, że wbudowane w przeglądarki mechanizmy tego nie mają. Jeśli nie jest Ci to potrzebne do niczego, to przecież nie musisz dodawać opcji ograniczających zakres.
Co należy dodać aby po przekroczeniu daty o 3 lata wstecz zwrócił komunikat " data została przekroczona o 3 lata "? .Poniższy kod sprawdzi czy dzień dzisiejszy jest wcześniejszy i zwraca komunikat "data dzisiejsza" lub "data starsza"
onSelect: function(data) {
var dzisiaj = new Date(new Date().getFullYear(), new Date().getMonth(),new Date().getDate());
var selekt = new Date(data);
if (dzisiaj < selekt) {
alert('data dzisiejsza');
} else {
alert('data starsza');
}
}
Z góry dziękuje za jakieś przykłady, sugestie.
- Rejestracja:około 7 lat
- Ostatnio:prawie 7 lat
- Postów:12
stivens napisał(a):
przerob to co masz w inpucie na timestamp -> dodaj 3 lata -> sprawdz czy timestamp jest mniejszy niz Date.now()
let d = new Date("2010-03-03") undefined d.getTime() 1267574400000 Date.now() 1530786687634
Hej nie bardzo wiem jak powinno to wyglądać w mój input wygląda tak <input id="datepicker" class="form-control" type="text" placeholder="Wybierz datę">
muszę dodać parametr name=timestamp?

- Rejestracja:ponad 8 lat
- Ostatnio:6 minut
https://www.unixtimestamp.com/
inputa to sobie zamien na type date
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
<input type="date">
który działa zgodnie z oczekiwaniami OP?