webForumDet fria alternativet

Formatera Engelskt Datum

ASP

2 svar · 327 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#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
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.

Medlem 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

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)