05. april 2006 - 19:40
Der er
17 kommentarer og 1 løsning
split efter tegn nr 2
Er der en der kan modificere denne funktion, således at der splittes efter tegn nr. 2 og ikke ved punktum eller semikolon. <script language="javascript" > function beregn(obj) { var frm = obj.form; var tidspunkt1 = frm.start.value; var tidspunkt2 = frm.slut.value; var t1 = tidspunkt1.split(/[:\.]/);//del op med enten . eller : var t2 = tidspunkt2.split(/[:\.]/); var tid1 = new Date(); var tid2 = new Date(); tid1.setHours(t1[0]); tid1.setMinutes(t1[1]); tid2.setHours(t2[0]); tid2.setMinutes(t2[1]); var diff = Math.abs(tid1.getTime() - tid2.getTime()); var diffMin = Math.floor(diff / (1000*60)); var diffMin2 = '' + diffMin/60; var diffMin3 = diffMin2.replace('\.',',',diffMin2); frm.timer.value = diffMin3; } </script>
Annonceindlæg fra Deloitte
05. april 2006 - 20:26
#1
sådan? var t1 = tidspunkt1.split(tidspunkt1.charAt(1),1); t1[t1.length]=tidspunkt1.substr(1); var t2 = tidspunkt2.split(tidspunkt2.charAt(1),1); t2[t2.length]=tidspunkt2.substr(1);
05. april 2006 - 20:34
#2
fandt lige en fejl hvis de 2 første værdier i strengen var ens ville array'ets første værdi være lig ingenting for at undgå det har jeg rettet lidt scriptet: var t1 = tidspunkt1.split(tidspunkt1.charAt(1),1); if(t1[0]==""){t1=tidspunkt1.split(tidspunkt1.charAt(2),1) t1[0]=t1[0].substr(-1,1);} t1[t1.length]=tidspunkt1.substr(1); var t2 = tidspunkt2.split(tidspunkt2.charAt(1),1); if(t2[0]==""){t2=tidspunkt2.split(tidspunkt2.charAt(2),1) t2[0]=t2[0].substr(-1,1);} t2[t2.length]=tidspunkt2.substr(1); ... dette skulle hjælpe på problemet (7,9,13) :P /* //test: for(rim=0;rim<t1.length;rim++){ alert("t1,"+rim+": "+t1[rim]); for(rim=0;rim<t2.length;rim++){ alert("t2,"+rim+": "+t2[rim]); */
05. april 2006 - 20:37
#3
naa, den regner ikke rigtig :)
05. april 2006 - 20:38
#4
prøver den lige
05. april 2006 - 20:39
#5
den regner ikke rigtigt. jeg indtaster eksempelvis 1000 som første værdi og 1200 som anden værdi. det regner den ud til 3,333335
05. april 2006 - 20:44
#6
efter tegn nr 2. istedet?
05. april 2006 - 20:45
#7
hov nå ja, læste forkert...
05. april 2006 - 20:46
#8
det oprindelige script delte timer og minutter op med punktum eller semikolon. eksempelvis 10.00 og 12.00 det giver 2 timer. (det er det scriptet udregner) nu skal den kunne regne det samme ud, uden et tegn der adskiller timer og minutter altså igen 1000 og 1200 skal give 2 timer
05. april 2006 - 20:51
#9
kigger lige på det :P
05. april 2006 - 20:56
#10
sådan ? t1=new Array('',''); t1[0]=tidspunkt1.substr((tidspunkt1.length-2)*-1,2); t1[1]=tidspunkt1.substr(2); t2=new Array('',''); t2[0]=tidspunkt2.substr((tidspunkt2.length-2)*-1,2); t2[1]=tidspunkt2.substr(2);
05. april 2006 - 20:58
#11
Prøv bare at indsætte punktum eller kolon, eller også at oprette variablerne direkte som arrays: var tidspunkt1 = frm.start.value; var tidspunkt2 = frm.slut.value; var t1 = [tidspunkt1.substr(0,2),tidspunkt1.substr(2)]; var t2 = [tidspunkt2.substr(0,2),tidspunkt2.substr(2)];
05. april 2006 - 20:59
#12
tak til et svar
05. april 2006 - 21:01
#13
roenving eller mig - eller begge?
05. april 2006 - 21:03
#14
hehe, det var vist en snørklet måde jeg fik skrevet min på :D roenvings er væsetnlig bedre :)
05. april 2006 - 21:04
#15
jeg har ikke nået at se roenvings svar - brugte mclemens og det virker. så pointene går til mclemens
05. april 2006 - 21:06
#16
ok :)
05. april 2006 - 21:08
#17
tak for hjælpen tak for din deltagelse roenving
05. april 2006 - 21:10
#18
- takker for point :) og tak for inputtet herfra også roenving :) - nu fandt jeg også lige ud af at man kan angive et array uden at definere det for sig selv først :) samt rettet dem dumme måde jeg brugte substr på :)
Vi tilbyder markedets bedste kurser inden for webudvikling