datapicker sprawdzenie daty

0

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.

0

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 :)

0
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

0

W przykładzie powyżej zapomniałem dodać "direction: false," co blokuje daty przyszłe. Nie wiedziałem, że w type="date" możliwe jest blokowanie daty przyszłej.

0

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.

0
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.

https://codepen.io/zafon/pen/PavQgp

0

a może spróbuj datapicker.js, bootstrap z tego korzysta i działa ok

0

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.

0
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.

1

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
0
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?

0

https://www.unixtimestamp.com/

inputa to sobie zamien na type date

1 użytkowników online, w tym zalogowanych: 0, gości: 1