Gå til innhold

Dato scrip som også viser ukenummer


Anbefalte innlegg

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
Videoannonse
Annonse

Takk, men jeg står fortsatt fast :p 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

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

Får det ikke til jeg :p 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 :p 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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...