| Autor | Zpráva | ||
|---|---|---|---|
| jarousek Profil * |
#1 · Zasláno: 15. 2. 2011, 10:18:23
Zdravím,
snažím se vymyslet jak zadaná data do inputu převést na datum v javascriptu. Chci aby někdo zadal datum a ten se porovnal s dnešním datumem a z toho pak vznikl rozdíl ve dnech. http://byty.webkv.cz/nn2.html toto je funkce co pouzivam function vypocet() { var a = document.getElementById("najem"); var b = document.getElementById("datum"); var aa = a.value; var bb = b.value; var aaa = parseFloat(aa); var dnes = new Date (); var datum = new Date("januar 1, 2011"); // datum vzniku dluhu var dnu = 24 * 60 * 60 * 1000; var dny = dnes.getTime() - datum.getTime(); var pocet_dnu = Math.floor(dny/dnu); var poplatek1 = pocet_dnu*(25/100); var poplatek2 = 1+(poplatek1/100); var poplatek3 = Math.floor(aaa*poplatek2); var celkem = aaa+poplatek3; alert("Dluh na nájemném je: "+aaa+",- Kč --- Dlužník je v prodlení: "+pocet_dnu+". den"+" --- Poplatek z prodlení je: " +poplatek3+",- Kč --- Dluh celkem je: "+celkem+" ,- Kč") }; |
||
| _es Profil |
#2 · Zasláno: 15. 2. 2011, 10:45:58 · Upravil/a: _es
jarousek:
„snažím se vymyslet jak zadaná data do inputu převést na datum v javascriptu“ Najjednoduchšie je asi na text použiť metódu split:
var p = elementInputu.value.split(/\D/); p budú časti textu získaného z rozdelenia textu ľubovolnými nečíselnými znakmi. Všetky metódy na prácu s dátumom nájdeš tu.
|
||
| jarousek Profil * |
#3 · Zasláno: 15. 2. 2011, 11:24:20
Děkuji, takžš jsem řetězec rozdělil pomocí SUBSTR na tři části, ty pak převedl na čísla a dal jako atributy NEW DATE (rok, měsíc, den) a už to funguje jak má
|
||
| _es Profil |
#4 · Zasláno: 15. 2. 2011, 11:28:09 · Upravil/a: _es
jarousek:
„Děkuji, takžš jsem řetězec rozdělil pomocí SUBSTR na tři části“ Ako presne? Asi ti pri tom bude hroziť viac komplikácií ako pri použití metódy split.
Pomocou metódy split sa dá jednoducho dať návštevníkovi možnosť použiť ľubovolný oddeľovač.
|
||
| jarousek Profil * |
#5 · Zasláno: 15. 2. 2011, 11:40:23
u zadávání data mají poznámku ať to zadají ve formátu DD.MM.RRRR, ale oddělit to mohou jak chtěji, ja ten údaj potřebuji jen na zjištění datumu, který se odečte od dnešního a vznikne počet dní, což je údaj který je potřebný. Je to počítání dlužného nájemného a návštěvník zadá datum, kdy mu vznikl dluh:
var bb = b.value; var bbb_den1 = bb.substr(0,2); var bbb_den2 = parseFloat(bbb_den1); var bbb_mesic1 = bb.substr(3,2); var bbb_mesic2 = parseFloat(bbb_mesic1)-1; var bbb_rok1 = bb.substr(6,4); var bbb_rok2 = parseFloat(bbb_rok1); var dnes = new Date (); var datum = new Date(bbb_rok2, bbb_mesic2, bbb_den2); |
||
| _es Profil |
#6 · Zasláno: 15. 2. 2011, 11:55:17
jarousek:
„u zadávání data mají poznámku ať to zadají ve formátu DD.MM.RRRR“ Prečo ich k tomu nútiť? Ak zadajú dátum v nejakom obvyklom tvare napríklad 1.10.2011, tak sa z toho tvojho kódu asi vyráta nejaká blbosť.
Prečo požívaš metódu parseFloat, keď existuje aj metóda parseInt - treba zadať aj 10 ako druhý argument.
|
||
| jarousek Profil * |
#7 · Zasláno: 15. 2. 2011, 13:23:39
tak jsem to nakonec udělal takhle, mělo by být ošetřeno i zadávání D.M.RRRR
var aaa = parseInt(aa,10); var bbb = bb.length; var bbb_den1 = bb.indexOf("."); // vyhledá kde je první "." var bbb_den2 = bb.substr(0,bbb_den1); // ořízne řetězec od pozice 0 do pozice bbb_den1 var bbb_den3 = parseInt(bbb_den2,10); // převede řetězec bbb_den2 na číslo v "10" soustavě var bbb_rok1 = bb.lastIndexOf("."); var bbb_rok2 = bb.substr(bbb_rok1+1,bbb); var bbb_rok3 = parseInt(bbb_rok2,10); var bbb_mesic1 = bbb-bbb_den2.length*2-bbb_rok2.length; var bbb_mesic2 = bb.substr(bbb_den1+1,bbb_mesic1); var bbb_mesic3 = parseInt(bbb_mesic2,10); |
||
| _es Profil |
#8 · Zasláno: 15. 2. 2011, 20:19:04
jarousek:
Prečo nepoužiješ oveľa jednoduchšie metódu split, ktorá ešte k tomu prináša funkčnosť navyše - možnosť použitia ľubovolného oddeľovača:
var p = elementInputu.value.split(/\D/); var den = parseInt(p[0], 10); var mesiac = parseInt(p[1], 10); var rok = parseInt(p[2], 10); |
||
| jarousek Profil * |
#9 · Zasláno: 17. 2. 2011, 10:05:59
tvoje řešení je super, jen nevím co je (/\D/), to najde číslo v řetezci ? pak by tedy p[0] našlo první číslo a p[1] druhý atd. ?
|
||
| jarousek Profil * |
#10 · Zasláno: 17. 2. 2011, 10:07:27
jo už je to jasný, to je regulární výraz pro něco co NENÍ číslo...už jsem doma :)
|
||
|
Časová prodleva: 15 let
|
|||
0