19. august 2003 - 16:33
Der er
7 kommentarer og 1 løsning
konvertering af string
Jeg skal behandle indholdet af en tekstbox i en form. tekstboksen indeholder en dato dd-mm-yyyy f. eks 22-08-2003 jeg skal have det konverteret til 2003234 (som er året efterfulgt af dagens nummer i året). Så jeg skal have trukket 2003 ud og sat foregående måneds dagetal bagved og lagt dd til: 2003 + 212(dage før 1. august) + 22 Det er noget med reg.exp?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
19. august 2003 - 16:44
#1
Næh nok nemmest med et par date-objekter: <script type="text/javascript"> function makeDayNumber(d){ dato = new Date(d.substring(6),(+d.substring(3,5)-1),d.substring(0,2)); first = new Date(d.substring(6),0,1); numDays = Math.floor((dato.getTime()-first.getTime())/(1000*60*60*24)); numDays = "00"+numDays; numDays = numDays.substring(numDays.length-3); return d.substring(6) + numDays; } </script> -- ganske utestet !-)
19. august 2003 - 16:49
#2
-- der skal bruges Math.round i stedet for Math.floor pga. sommertiden !-)
19. august 2003 - 16:50
#3
-- og hvis du skal have dag-nummeret skal der lægges een til, da 1/1 tælles som nul-dagen ...
19. august 2003 - 17:35
#4
Jeg synes ikke at den vil tage det datoformat 22-08-2003 som input? Jeg kan indsætte d = "22-08-2003"; og så virker det, men jeg kan ikke overføre datoen i funktionskaldet?
19. august 2003 - 17:53
#5
Jo, nu har jeg fundet ud af det. Mange tak for hjælpen, giv mig et svar, så du kan få dine point.
19. august 2003 - 17:54
#6
Jeg testede det sådan: onchange="alert(makeDayNumber(this.value));" -- jeg gætter du skal bruge this.value ... -- og du kan så lige få koden, så den giver præcis det resultat du forventer: <script type="text/javascript"> function makeDayNumber(d){ dato = new Date(d.substring(6),(+d.substring(3,5)-1),d.substring(0,2)); first = new Date(d.substring(6),0,1); numDays = Math.round((dato.getTime()-first.getTime())/(1000*60*60*24))+1; numDays = "00"+numDays; numDays = numDays.substring(numDays.length-3); return d.substring(6) + numDays; } </script>
19. august 2003 - 17:54
#7
Velbekomme '-)
19. august 2003 - 18:35
#8
-- og tak for points ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling