Någon som har en bra funktion för att räkna ut vilken vecka det är med JScript?
JScript: Veckonummer
18 svar · 566 visningar · startad av nill
I JScript finns ingen funktion för veckonummer, utan det blir nog till att räkna själv, är jag rädd.
Red: Jag passar på att kasta med en länk till Microsofts JScript-referens.
Mvh,
JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.
Jag vet att det inte finns någon inbyggd funktion. Men någon kanske har snickrat en egen som de kan posta här.
Det är bökigare än man först tror. Jag har snickrat ihop en prototype. Du får gärna testa och se om du kan hitta någon bug.
Date.prototype.getWeek=function(){
var nywd=(new Date(this.getFullYear(),0,1).getDay()==0)?7:new Date(this.getFullYear(),0,1).getDay();
var jan1week=(nywd<5)?1:0;
if(this.getTime()<new Date(this.getFullYear(),0,9-nywd).getTime()){
if(jan1week==1){ return 1; }
nywd=(new Date(this.getFullYear()-1,0,1).getDay()==0)?7:new Date(this.getFullYear()-1,0,1).getDay(); jan1week=(nywd<5)?1:0;
return(week=Math.ceil((new Date(this.getFullYear()-1,11,31).getTime()-new Date(this.getFullYear()-1,0,9-nywd).getTime())/(1000*60*60*24*7))+jan1week);
} else {
return(Math.ceil((new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()-new Date(this.getFullYear(),0,9-nywd).getTime())/(1000*60*60*24*7))+jan1week);
}
}
Anropas med;
alert("Det är vecka "+new Date().getWeek()+".");
Vill inte vara petig, men... ;)
31/12 2001 ger v 52. Skall vara v 1
nedan bör funka (bug-kolla gärana)
Date.prototype.getWeek=function(){
jan1 = (new Date(this.getFullYear(),0,1).getDay()==0)? 7 : new Date(this.getFullYear(),0,1).getDay();
days = (this-new Date(this.getYear(),0,1)) / (86400000)
ww = (jan1<=4)? Math.ceil((days+jan1)/7) : Math.ceil((days+jan1-7)/7);
if(ww==0){new Date(this.getFullYear(),0,0).getWeek()}
if(ww==53 && new Date(this.getFullYear()+1,0,1).getDay()<=4){ww=1}
return ww
}
det här är skumt:
var d = new Date();
var monad = d.getMonth();
Response.Write (monad);
ger utskriften 10. Ska det inte vara November (11) nu om jag inte minns fel?
Det är smart när man gör arrayer med månader ju!
Johnsen skrev:
Vill inte vara petig, men... ;)
31/12 2001 ger v 52. Skall vara v 1
Det är därför man låter andra bugtesta, och det ska vara petigt testat, annars är det ju ingen nytta med det :) Tackar.
nill skrev:
JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.
JScript != ASP
Denniz PoP skrev:
nill skrev:
JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.
JScript != ASP
JScript hör till ASP lika mycket som VB-Script. ASP är enbart ett samlingsnamn för olika scriptspråk.
RED:
Även om VB-Script är default i de flesta fall. :)
Jörgen HP skrev:
Denniz PoP skrev:
nill skrev:
JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.
JScript != ASP
JScript hör till ASP lika mycket som VB-Script. ASP är enbart ett samlingsnamn för olika scriptspråk.
RED:
Även om VB-Script är default i de flesta fall. :)
Självklart, men VBScript är inte heller ASP. :)
Denniz PoP skrev:
Självklart, men VBScript är inte heller ASP. :)
Vad är Active Server Pages då :q
Ett samlingsnamn=)
Borde det inte gå att spara värdet i en "VB-variabel" och sedan anropa den i JScript??
typ så här:
<%@Language = "JScript"%>
<Script Runat= "server" Language= "VBscript">
intVecka = DatePart("ww", Date(), 2)
</Script>
<%
Response.Write("Just nu är det vecka " + intVecka + "<br>")
%>
Eller?
/ Mikul
<script language="JScript" runat="server">
var datum=new Date().getFullYear()+"-"+(new Date().getMonth()+1)+"-"+new Date().getDate()
</script>
<script language="VBscript" runat="server">
response.write("Dagens datum är "&datum)
</script>
Johnsen skrev:
Vill inte vara petig, men... ;)
31/12 2001 ger v 52. Skall vara v 1
nedan bör funka (bug-kolla gärana)
Jag får väl peta lite tillbaks ;) Satt och pillade lite med funktionen och såg att det fattas ett return. Prova med ex. 1/1 2005.
Men en rätt intressant grej är ju datum 0, det hade jag faktiskt inte provat förrut.
Date.prototype.getWeek=function(){
jan1 = (new Date(this.getFullYear(),0,1).getDay()==0)? 7 : new Date(this.getFullYear(),0,1).getDay();
days = (this-new Date(this.getYear(),0,1)) / (86400000)
ww = (jan1<=4)? Math.ceil((days+jan1)/7) : Math.ceil((days+jan1-7)/7);
if(ww==0){ [b]return[/b] new Date(this.getFullYear(),0,0).getWeek()}
if(ww==53 && new Date(this.getFullYear()+1,0,1).getDay()<=4){ww=1}
return ww
}