webForumDet fria alternativet

Engelska datum från svensk databas

ASP

13 svar · 411 visningar · startad av i-or

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

Hej,

Jag har nu mitt webbhotell på loopia och om jag hämtar datum från mina databaser får de en svensk standard. Hur gör jag för att de ska få en engelsk standard? Jag har provat med Session.Lcid, men jag har bara fått det att funka med funktioner som "Now" och liknande och inte med datum hämtade från databaser. Jag har mailat loopia, men det hänvisar till att det var en programmeringsfråga och inte en serverrelaterad fråga.

Tack på förhand

Medlem sedan juli 20011 084 inlägg
#2

Har du satt datatypen till datum och inte text(i databasen)?

Medlem sedan dec. 200012 464 inlägg
#3

Om du sätter session.lcid och sedan använder funktionen Formatdatetime på värdet så borde det bli bra.

Medlem sedan nov. 2001294 inlägg
#4

Hur fungerar funktionen formatdatetime?

Jag använder denna

Format([time2],'d mmm')

i en del SQL-satser men det blir fortfarande svensk standard på datumen så jag antar att den funktionen som du nämde är en annan.

Medlem sedan dec. 200012 464 inlägg
Medlem sedan nov. 2001294 inlägg
#6

Tyvärr är jag inte tillfredsställd.

Dels finns det bara fyra olika alternativ och datumen blir helt fel eftersom de ligger som svenska i databasen. 1 augusti 2002 blir:

08/01/2002 (8 januari 2002)

Finns det inget annat sätt att lösa problemet på?

Medlem sedan dec. 200012 464 inlägg
#7

Det där ser ut som amerikanskt datumformat. Vad har du för LCID?

Du kan ju alltid plocka ut delarna från ett datum med funktionen datepart och sedan sätta ihop dom som du vill.

Medlem sedan nov. 2001294 inlägg
#8

Jag använde 2057. Vad är den engelska lcid:en?

Jag fick inte datepart att fungera heller.

<% =DatePart("m", Time2) %> <% =DatePart("d", Time2) %>

genererade 1 8 och inte 8 1, som 1 augusti ska generera. Detta oberoende på vad jag hade för lcid.

Jag tycker att loopia där jag har webhotellet borde kunna ha både "svenska" och "engelska" databaser, men tydligen kan de inte det. Kan det vara så svårt?

Med mitt förra webhotell, som hade engelsk standard på databaserna fungerade datumen smärtfritt.

Medlem sedan apr. 20021 203 inlägg
#9

Annars, om du inte har tid att fjanta, kan du ju bara använda några Right på det svenska datumet och sedan pussla ihop det som du vill.

Medlem sedan nov. 2001294 inlägg
#10

Kan du förklara det lite närmare (med exempelkod tack)? Jag är inte allt för kunnig inom ASP.

Medlem sedan apr. 20021 203 inlägg
#11

Citerat från webeye.nu om Right (om du vill kan du byta ut right mot left och mid):

Right()
Right() fungerar ungefär som Mid(), men med sillnaden att startpositionen redan är utsatt till höger om textsträngen. Syntax:
String = Right(sträng, längd)

Så om vi tar textsträngen vi använde i föregående exempel, och testar lite:

<%
string = "En grodas mobil!"
ny_string = Right(string,6)
Response.write ny_string
%>

Resultat: mobil!

<%
string = "En grodas mobil!"
ny_string = Right(string,20)
Response.write ny_string
%>

Resultat: En grodas mobil!

En lyssna inte för mycket på mig, det är nog mycket bättre att fixa rätt Lcid nummer.

:)

Medlem sedan nov. 2001294 inlägg
#12

Lite sent kanske, men jag läste iaf problemet på detta sätt:

Function Longdate

If Weekday(Dat) = 1 Then
Response.Write "Monday, "
ElseIf Weekday(Dat) = 2 Then
Response.Write "Tuesday, "
ElseIf Weekday(Dat) = 3 Then
Response.Write "Wednesday, "
ElseIf Weekday(Dat) = 4 Then
Response.Write "Thursday, "
ElseIf Weekday(Dat) = 5 Then
Response.Write "Friday, "
ElseIf Weekday(Dat) = 6 Then
Response.Write "Saturday, "
ElseIf Weekday(Dat) = 7 Then
Response.Write "Sunday, "
End If

If Month(Dat) = 1 Then
Response.Write "January "
ElseIf Month(Dat) = 2 Then
Response.Write "February "
ElseIf Month(Dat) = 3 Then
Response.Write "March "
ElseIf Month(Dat) = 4 Then
Response.Write "April "
ElseIf Month(Dat) = 5 Then
Response.Write "May "
ElseIf Month(Dat) = 6 Then
Response.Write "June "
ElseIf Month(Dat) = 7 Then
Response.Write "July "
ElseIf Month(Dat) = 8 Then
Response.Write "August "
ElseIf Month(Dat) = 9 Then
Response.Write "September "
ElseIf Month(Dat) = 10 Then
Response.Write "October "
ElseIf Month(Dat) = 11 Then
Response.Write "November "
ElseIf Month(Dat) = 12 Then
Response.Write "December "
End If

Response.Write Day(Dat) & ", " & Year(Dat)

End Function

Hyfsad metod eller?

Medlem sedan dec. 200012 464 inlägg
#13

Det finns funktioner som heter weekdayname och monthname som gör precis det där.

Medlem sedan nov. 2001294 inlägg
#14

Jag kanske glömde säga att "Dat" kommer ifrån databasen (som har svensk standard).

Problemet var ju att datumstandarden blev fel. Jag provade med DatePart och FormatDateTime (misstänker att dessa fungerar likadant som Weekdayname och Monthname) men den såg fel mellan månad och dag eftersom svenska datumstandard och engelska datumstandard är olika.

Med denna metod får jag iaf att rätt siffra står för rätt månad.

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)