Autor | Zpráva | ||
---|---|---|---|
Hapipo Profil |
Ahoj,
chtěl jsem se zeptat, jak nastavím ve vstupu <input type="date"> minimální datum na zítřek, aby dnešek a předchozí dny nešly zvolit. Díky |
||
lionel messi Profil |
#2 · Zasláno: 16. 2. 2020, 12:29:30
Hapipo:
Ak ti stačí primitívna valdiácia v prehliadačoch, tak HTML atribúty min a max pre daný input. Pozri si prvú ukážku na MDN. Samozrejme, kvôli nespoľahlivosti potrebuješ aj validáciu na serverovej strane. |
||
Hapipo Profil |
#3 · Zasláno: 16. 2. 2020, 12:43:24
lionel messi:
Asi si nerozumíme, mám tenhle script, a když si rozbalím kalendář v inputu, tak prosvícené jsou data od dneška po nekonečno. Já jen potřebuji, aby to bylo od zítra po nekonečno. webshims.setOptions('forms-ext', { replaceUI: 'auto', types: 'date' }); webshims.polyfill('forms forms-ext'); $(function(){ $('[type="date"].min-today').prop('min', function(){ return new Date().toJSON().split('T')[0]; }); }); |
||
lionel messi Profil |
Hapipo:
Ospravedlňujem sa, nevidel som kontext, na všeobecnú otázku som dal všeobecnú odpoveď. Ide o problém s prioritou operátorov, správne je: return (new Date()).toJSON().split('T')[0];
Moje znalosti JS sú dosť chatrné, takže to, žiaľ, nedokážem dostatočne dobre vysvetliť. |
||
Kajman Profil |
#5 · Zasláno: 16. 2. 2020, 14:21:44
return new Date(new Date().getTime() + 24*60*60*1000).toJSON().split('T')[0]; |
||
Radek9 Profil |
Kajman:
Tohle je takové trochu násilné řešení. Selže v případech blízkých půlnoci, pokud se v následujícím dni ubírá hodina (při změně na letní čas) nebo v aktuálním přidává (při změně na standardní čas). Např. 28. března 2020 ve 23:30 by to vrátilo až 30. března. Čistší je to udělat takto: var date = new Date(); date.setDate(date.getDate() + 1); return date.toJSON().split('T')[0]; Dalším problémem je, že toJSON() vrací ISO date, který ignoruje časová pásma. Vše převádí do GMT. Což konkrétně v našem pásmu může znamenat posun o 1 nebo 2 hodiny. Takže je ještě lepší to udělat takhle:
return date.getFullYear() + '-' + String(101 + date.getMonth()).slice(1) + '-' + String(100 + date.getDate()).slice(1); |
||
Kajman Profil |
#7 · Zasláno: 16. 2. 2020, 15:21:05
Radek9:
Ano. Ale tipuji, že ke správnému fungování by stejně měl uživatel vybírat datum dle času serveru než dle času na svém počítači. |
||
Hapipo Profil |
#8 · Zasláno: 16. 2. 2020, 17:04:10
|
||
Kajman Profil |
#9 · Zasláno: 16. 2. 2020, 17:41:56
Chybí tam první dva řádky s definicí a výpočtem promenné date.
|
||
Hapipo Profil |
#10 · Zasláno: 16. 2. 2020, 20:36:47
Už mi to funguje v jsfiddle, ale při pokusech to vložit do kódu na webu, tak nefunguje. Odkazuji na jQuery 3.3.1 a script jsem je pokoušel vložit jak do hlavy, tak k html, ale nic
|
||
Časová prodleva: 4 roky
|
0