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: 13 let
|
0