webForumDet fria alternativet

Formatera Engelskt Datum

ASPur ASP

2 svar · 325 visningar · startad av ConnyFox

ConnyFoxMedlem sedan aug. 20011 087 inlägg
#1

Behöver en funktion som formaterar ett engelskt datum och visar t.ex Today 14:32, yesterday 13:20 eller om det är en annan dag så skall den visa t.ex January 7th

Har denna funktionen för svenska datum men den fungerar ju inte nu när det är engelskt datumformat :(

function formatDate(inDate)
 
  varMonthName = Array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec")
  varMonthNumber = Int(Right(Left(inDate,7),2))
  varDayNumber = Int(Right(Left(inDate,10),2))
  varYearNumber = Int(Left(inDate,4))
  varTime = ""
  
  if Len(inDate) = 19 then
    varTime = " "& Left(Right(inDate,8),5)
  end if

  if varMonthNumber = month(date) and varDayNumber = day(date) and varYearNumber = year(date) then
    formatDate = "Idag"& varTime
  elseif varMonthNumber = month(date) and varDayNumber + 1 = day(date) and varYearNumber = year(date) then
    formatDate = "Igår"& varTime
  else
    formatDate = varDayNumber &" "& varMonthName(varMonthNumber - 1) &" "& varYearNumber & varTime
  end if
end function
J.N.Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Det har väl ingen betydelse vilken format det är på datumet, tänkte jag, det formaterar du ju när du får in det. Och att översätta idag och igår är enkelt, ev kombinerat med flytt av ordning i utskriften?

Men, sedan ser jag att du stränghanterar fram år, mån, dag, vilket är helt förkastligt; du vet ju inte hur datumet formateras (per default) på olika servrar.

Använd de vanliga funktionerna Year, Month och Day istället!
http://www.devguru.com/technologies/vbscript/13989.asp
varMonthNumber = Month(inDate)
osv

Lägg också märke till att MonthName ger kortnamn för månader, dvs de fyra första raderna ersätter du med nytt.
http://www.devguru.com/technologies/vbscript/13954.asp

Återstår att översätta Idag och Igår, sedan bör det fungera.

liljaMedlem sedan juli 20041 183 inlägg
#3

Om du enbart vill ändra format som ändras beroende på språk kan du använda Session.LCID.

Ex:

'----- Svenska
Session.LCID = 1053

'----- Engelska, USA
Session.LCID = 1053

Läs mer:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsmsclcid.asp

121 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
118 ms — hämta tråd, inlägg och bilagor (db)