magnemoe Skrevet 29. juni 2007 Del Skrevet 29. juni 2007 Ja det er riktig, jeg får inn en dato via ajax, den er på formatet 31.5.2007 (ddmmyyyy) Gjør denne om til et date object for å kjøre kalkulasjoner på den. Koden: dato1="31.5.2007"; a2=dato1.split("."); var startdato=new Date(a2[2],a2[1],a2[0]); alert(startdato); gir sunday 1 jul 2007 samme problemet med andre dager med 31 dager men ikke med 28 eller 30 Har noen vært borte i dette før? Fikser eller workarouds? Tenker på å bare sjekke om (startdato.getMonth()!=a2[1]) && (a2[0]==31) i såfall bygge opp dato på nytt Magne Moe Lenke til kommentar
Wattengård Skrevet 29. juni 2007 Del Skrevet 29. juni 2007 Prøv med var startdato = new Date(); startdato.setFullYear(<år>,<mnd>,<dato>); Istedet... -C- Lenke til kommentar
magnemoe Skrevet 29. juni 2007 Forfatter Del Skrevet 29. juni 2007 Prøv med var startdato = new Date(); startdato.setFullYear(<år>,<mnd>,<dato>); Istedet... -C- 8968050[/snapback] Hei Prøvde det men det ga samme feil. veldig merkelig. Lenke til kommentar
Wattengård Skrevet 29. juni 2007 Del Skrevet 29. juni 2007 Ja faktisk 31. Mai blir til 1. Juli ... Snodig.. -C- Lenke til kommentar
magnemoe Skrevet 29. juni 2007 Forfatter Del Skrevet 29. juni 2007 Jup, har testet den rundt på kontoret her likt på alle pcene. Det virker som den ikke godtar 31 dagers måneder men gjørdem om til 1 i måneden etter. Har også prøvd med startdato.setdate(31) Fra msdn http://msdn2.microsoft.com/en-us/library/txfkf2t2.aspx If the value of numDate is greater than the number of days in the month stored in the Date object or is a negative number, the date is set to a date equal to numDate minus the number of days in the stored month. For example, if the stored date is January 5, 1996, and setDate(32) is called, the date changes to February 1, 1996. Negative numbers have a similar behavior. Så den skal gå til neste dato, men det virker som date objektet ikke godtar mer en 30 dager i måneden. Har nå prøvd å sette dato på tre måter og det virker ikke. Prøvde også startdato.setHours(-24); den trekker fra en dag på alle datoer untatt datoer som 1.6.2007 de blir fortsatt 1.6.2007 Dette tyder på at javascript ikke tror mai har 30 dager, for da ville du fått 30.5.2007 som svar, den finner riktig svar og så blir den endret til 1.6.2007 etterpå ------- Prøver nå å gjenopplive min gamle tanke om 30 dagers måneder, de 5 eksta dagene telles ikke, legger dem på første nyttårsdag, 2 og 18 mai, etter sanktans, andre juledag siden du alikevell har bakrus og vil glemme den dagen. Lenke til kommentar
magnemoe Skrevet 2. juli 2007 Forfatter Del Skrevet 2. juli 2007 Hei fant feilen her, javascript teller måneder fra 0-11 ikke 1-12 som vanlig. Dager telles 1-31, Dette gjør at new Date('2007','5','31'); er 31 juni ikke 31 mai, denne datoen finnes ikke og neste brukes. Må trekke fra 1 vær gang jeg sender en måned inn i javascript. var startdato=new Date(a2[2],a2[1]-1,a2[0]); Må konvertere tilbake i ajax kallet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå