---
title: "Formatera datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/158156-formatera-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Mika3l"
published: "2007-03-13T22:18:07.000Z"
updated: "2007-03-14T17:21:22.000Z"
replies: 8
views: 810
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/158156-formatera-datum"
---

# Formatera datum

## #1 — Mika3l, 2007-03-13T22:18Z

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?

Permalänk: https://www.webforum.nu/p/158156

## #2 — Fredde Mannen, 2007-03-13T23:35Z

> **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() :)

Permalänk: https://www.webforum.nu/p/1947930

## #3 — Mika3l, 2007-03-14T11:01Z

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..?

Permalänk: https://www.webforum.nu/p/1947997

## #4 — @nders, 2007-03-14T11:05Z

> 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.

Permalänk: https://www.webforum.nu/p/1947999

## #5 — Fredde Mannen, 2007-03-14T11:07Z

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

Permalänk: https://www.webforum.nu/p/1948000

## #6 — headbug, 2007-03-14T11:08Z

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..?

Permalänk: https://www.webforum.nu/p/1948001

## #7 — Mika3l, 2007-03-14T11:12Z

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

Permalänk: https://www.webforum.nu/p/1948002

## #8 — Eclipse, 2007-03-14T14:22Z

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>

Permalänk: https://www.webforum.nu/p/1948029

## #9 — Mika3l, 2007-03-14T17:21Z

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.

Permalänk: https://www.webforum.nu/p/1948072

---

Tråden på webben: https://www.webforum.nu/amne/asp/158156-formatera-datum
