webForumDet fria alternativet

Formatera datum

ASPur ASP

8 svar · 801 visningar · startad av Mika3l

Medlem sedan nov. 20018 492 inlägg
Frågan#1

Tjipp!
Jag skulle vilja skriva ut ett datom som yyyy-mm-dd och har det sparat så i min databas men när datumet skrivs ut så blir det mm/dd/yyyy istället. Sidan ligger hos Surftown så det är engelska (USA) servrar. Jag har testat med FormatDateTime(2) och Session.lcid = 1053 och det förstnämnda ger inget resultat och det sistnämnda stöds inte av servern... Kan jag få som jag vill på något sätt?

Medlem sedan nov. 20014 054 inlägg
#2

Mika3l skrev:

Tjipp!
Jag skulle vilja skriva ut ett datom som yyyy-mm-dd och har det sparat så i min databas men när datumet skrivs ut så blir det mm/dd/yyyy istället. Sidan ligger hos Surftown så det är engelska (USA) servrar. Jag har testat med FormatDateTime(2) och Session.lcid = 1053 och det förstnämnda ger inget resultat och det sistnämnda stöds inte av servern... Kan jag få som jag vill på något sätt?

Jasså så den vill inte använda Session.LCid = 1053..

Nåväl har man inget lätt sätt att lösa saker och ting på så får man skapa egna sätt.. ett eget sätt kan se ut så här:

mm/dd/yyyy till yyyy-mm-dd

<%
Function FixaDatum(amerikanskt)

	str1 = amerikanskt

	Dim str
	str = split(str1,"/")

	newstr = str(2) & "-" & str(1) & "-" & str(0)

	FixaDatum = newstr
End Function

Response.Write FixaDatum("07/07/2007")
%>

FormatDateTime(2) dvs vbShortDate, visar default, är exempelvis amerikanska inställningar på datum, så blir default mm/dd/yyyy , är det svenska så får du yyyy-mm-dd

Så har man ingen annan utväg får man väl leka med split() :)

Medlem sedan nov. 20018 492 inlägg
#3

Gjorde lite modifikationer och då verkade det fungera lokalt iaf men när jag slänger upp det hos Surftown så får jag det här felmeddelandet:

Error Type:
Sun ONE ASP VBScript runtime (0x800A0009)
Subscript out of range
top.asp, line 15

Function fixDate(american)
str1 = american
Dim str
str = split(str1,"/")
str = split(str1,"-")
[b]newstr = str(0) & "-" & str(1) & "-" & str(2)[/b]
fixDate = newstr
End Function

Nåt problem som uppstår för att dom tydligen inte använder IIS..?

Medlem sedan juni 200032 969 inlägg
#4

Nåt problem som uppstår för att dom tydligen inte använder IIS..?

Säkert. ASP hör hemma på IIS. Allt annat suger. Enklast är väl att:

  1. Se till att datumet är av subtyp datum (använd Cdate()).
  2. Skicka in datumet till funktionen:
function fixDate(dDate)
        fixDate = year(dDate) & "-" & Right("0" & month(dDate), 2) & "-" & Right("0" & day(dDate), 2)
end function

Men mitt tips är ändå: byt webbhotell.

Medlem sedan nov. 20014 054 inlägg
#5

om det är ett amerikanskt datum... så funkar inte denna rad: str = split(str1,"-")
för deras look är ju dd/mm/yyyy ..

Medlem sedan sep. 2006867 inlägg
#6

Hoppla, du definierar str två gånger och den sista gäller och den är dessutom fel, eftersom du vill jobba från "/" till "-"

ta bort raden

str = split(str1,"-")

så går det nog bättre.

I och med att du splittade på "-" och det inte fanns några "-" i din american så blev arrayen bara en cell lång, därav det helt korrekta felmeddelandet att str(1) och str(2) var otillåtna.

Förslag: lägg in en koll att du fått tre celler innan du försöker anropa dom så blir din funktion mer robust!

Mika3l skrev:

Gjorde lite modifikationer och då verkade det fungera lokalt iaf men när jag slänger upp det hos Surftown så får jag det här felmeddelandet:

Error Type:
Sun ONE ASP VBScript runtime (0x800A0009)
Subscript out of range
top.asp, line 15

Function fixDate(american)
str1 = american
Dim str
str = split(str1,"/")
str = split(str1,"-")
[b]newstr = str(0) & "-" & str(1) & "-" & str(2)[/b]
fixDate = newstr
End Function

Nåt problem som uppstår för att dom tydligen inte använder IIS..?

Medlem sedan nov. 20018 492 inlägg
#7

@nders kod fungerade perfa!
Man får tacka både honom och er andra som tog er tid! :)

Medlem sedan juli 20003 825 inlägg
#8

Kanske kör webbhotellet CilliSoft ASP? Det stödjer inte LCID... Det har det aldrig gjort!!

(Jag tror ChilliSoft ASP är köpt av nån annan nu och heter nåt annat... men det är samma kod/mjukvara.)

***
Lägg dina sidor hos Aleborg. Där finns även bildkomponenter och annat kul man kan trixa med. https://www.aleborg.se

Medlem sedan nov. 20018 492 inlägg
#9

Surftowns aspstöd må suga men ekonomin är väldigt viktig i det här fallet så det får gå ändå. Styr inte speciellt mycket över val av webbhotell heller.

137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)