HulkHaugen Skrevet 25. september 2009 Del Skrevet 25. september 2009 Har i dag et nusselig lite script som viser dato på følgende måte (Det røde er det jeg mangler) Fredag 25. september 2009, Uke 39 og her er koden jeg nå bruker: var now = new Date(); var day = new Array("Søndag ","Mandag ","Tirsdag ","Onsdag ","Torsdag ","Fredag ","Lørdag "); var months = new Array(" januar "," februar "," mars "," april "," mai "," juni "," juli "," august "," september "," oktober "," november "," desember "); var date = now.getDate(); function fourdigits(number) {return (number < 1000) ? number + 1900 : number;} today = day[now.getDay()] + date + "." + months[now.getMonth()] + (fourdigits(now.getYear())); document.write(today); Kanskje det også hadde vært mere naturlig å vise ukenummeret en annen plass i linjen? Uansett, syntes dette var for komplisert for mine kunnskaper. Fant en engelsk guide, men kunne heller ikke bruke den pga deres uke begynner på søndag og ikke mandag... Lenke til kommentar
cbastus Skrevet 30. september 2009 Del Skrevet 30. september 2009 http://www.meanfreepath.com/support/getting_iso_week.html Brukes slik: var myDate = new Date; document.write(myDate.getWeek(1)); Lenke til kommentar
HulkHaugen Skrevet 1. oktober 2009 Forfatter Del Skrevet 1. oktober 2009 Takk, men jeg står fortsatt fast hvordan integrerer jeg det med min allerede eksisterende dato da? her er mitt forsøk, men det resulterer i ingenting... var now = new Date(); var day = new Array("Søndag ","Mandag ","Tirsdag ","Onsdag ","Torsdag ","Fredag ","Lørdag "); var months = new Array("januar ","februar ","mars ","april ","mai ","juni ","juli ","august ","september ","oktober ","november ","desember "); var date = now.getDate(); function fourdigits(number) {return (number < 1000) ? number + 1900 : number;} var week = now.getWeek(); today = day[now.getDay()] + date + ". " + months[now.getMonth()] + (fourdigits(now.getYear())) ", Uke "week[now.getWeek(1)]; document.write(today); Lenke til kommentar
cbastus Skrevet 1. oktober 2009 Del Skrevet 1. oktober 2009 See på hvordan uken skrives ut: Regner med at du ikke trenger referere til en array for å skrive ut denne. Altså, bytt week[now.getDate()] til now.getDate(). Også må du ha med prototypingen slik at .getWeek() blir en del av Date() objektet. Lenke til kommentar
HulkHaugen Skrevet 2. oktober 2009 Forfatter Del Skrevet 2. oktober 2009 Får det ikke til jeg Har prøvd en del nå, og googlet litt, men får det rett og slett ikke til. Ikke nok med det, men imens jeg googlet fant jeg utav jeg kan bytte ut .getYear med .getFullYear og dermed slippe denne function fourdigits(number)... funksjonen, men jeg klarer ikke å legge til den heller. Det som frustrerer med er å kikke på det som er av kode fra før av. slik som day og months har jo allerede en "id" etter array funksjonene, mens slik som date rett og slett bare eksisterer som default. hvorfor gjør ikke year eller fullyear det da? må den ha en var year = now.getFullYear eller noe sånt? Og etter det jeg har googlet om Week, så må den kalkuleres, og er ikke en ferdig funksjon, men det jeg har lest kan jo være utdatert da.... uansett, som du sikkert har skjønt så er ikke javascript noe som står sterkt hos meg selv om jeg oppdaget en feil selv da, hadde glemt å legge + mellom ", Uke " og dermed ukefunksjonen, selv om det ikke endret noe Her er koden jeg her til nå (som er verre enn utangspunktet) var now = new Date(); var day = new Array("Søndag ","Mandag ","Tirsdag ","Onsdag ","Torsdag ","Fredag ","Lørdag "); var months = new Array("januar ","februar ","mars ","april ","mai ","juni ","juli ","august ","september ","oktober ","november ","desember "); var yearr = new Date(); today = day[now.getDay()] + date + ". " + months[now.getMonth()] + yearr(now.getFullYear()) + ", Uke "; document.write(today); Lenke til kommentar
cbastus Skrevet 3. oktober 2009 Del Skrevet 3. oktober 2009 Foreslår at du lleser litt om Date objektet og hva prototyping går ut på. Der er også lurt å lese gjennom W3 schools sin JavaScript guide. Date.prototype.getWeek = function (dowOffset) { if(!dowOffset) var dowOffset = 0; var newYear = new Date(this.getFullYear(),0,1); var day = newYear.getDay() - dowOffset; //the day of week the year begins on day = (day >= 0 ? day : day + 7); var daynum = Math.floor((this.getTime() - newYear.getTime() - (this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1; var weeknum; //if the year starts before the middle of a week if(day < 4) { weeknum = Math.floor((daynum+day-1)/7) + 1; if(weeknum > 52) { nYear = new Date(this.getFullYear() + 1,0,1); nday = nYear.getDay() - dowOffset; nday = nday >= 0 ? nday : nday + 7; //if the next year starts before the middle of the week, it is week #1 of that year weeknum = nday < 4 ? 1 : 53; } } else { weeknum = Math.floor((daynum+day-1)/7); } return weeknum; } var now = new Date(); var textDay = ['søndag ','mandag ','tirsdag ','onsdag ','torsdag ','fredag ','lørdag ']; var textMonth = ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember']; var output = textDay[now.getDay()] + ' ' + now.getMonth() + '. ' + textMonth[now.getMonth()] + ' ' + now.getFullYear() + ', uke ' + now.getWeek(1); document.write(output); Du kan forresten overstyre hvordan Date objektet skrives ut feks toDateString() med prototyping slik at du får resultatet over, men det får du lese deg opp på selv. Lenke til kommentar
HulkHaugen Skrevet 4. oktober 2009 Forfatter Del Skrevet 4. oktober 2009 Tusen takk for hjelpen. Helt ærlig så virket det som for mye å sette seg inn i for så lite for min del, jeg er helt blank på javascript, ser kun det som hvem som helst kan se. Men nå ble det jo akkurat sånn jeg ville ha det =) 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å