---
title: "siffror till datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/78338-siffror-till-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "ninae"
published: "2003-05-28T14:15:52.000Z"
updated: "2003-05-28T19:31:29.000Z"
replies: 7
views: 326
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/78338-siffror-till-datum"
---

# siffror till datum

## #1 — ninae, 2003-05-28T14:15Z

hejsan!

jag gör en inloggningssida där man ska logga in med sitt personnummer, typ 800522. nu vill jag göra om detta till 80-05-22. eftersom folk kan skriva in 19800522 kan det ju vara bra om man går bakifrån och sätter in - tecken. 
nån som är snäll och vill hjälpa mig me lite kod?

mvh anna :f

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

## #2 — Ceeron, 2003-05-28T14:18Z

Jag vet inte om functionen CDat() kan omvandla sådana datum... Annars får nån annan skriva korrekt lösning...

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

## #3 — Peeer, 2003-05-28T14:35Z

Välkommen till wF! :)

```
function conv_date(strInput)
select case len(strInput) 
  case 6
    strResult = left(strInput,2) & "-" & mid(strInput,3,2) & "-" & right(strInput,2)
  case 8
    strResult = left(strInput,4) & "-" & mid(strInput,5,2) & "-" & right(strInput,2)
  case else
    strResult = "Fel antal siffror inmatat!"
end select
conv_date = strResult
end function

response.write conv_date("800522")
```

Möjligen har jag rört ihop det lite med siffrorna för mid()-funktionen.

r/ rättade till lite retliga fel (bl.a. siffrorna i mid()-funktionen) ;)

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

## #4 — Palle, 2003-05-28T14:36Z

Går att lösa på olika sätt.. här är ett: 

```
[red]<%

Function makePersNr(str)

	str = trim(str)
	If Len(str) > 0 Then
		If InStrRev(str, "-", -1, 1) > 0 Then str = Left(str, InStrRev(str, "-", -1, 1)-1)
		str = Replace(str, "-", "")
		str = Replace(str, " ", "")
		If Len(str) > 6 Then str = mid(str,3,6)
		str = mid(str,1,2) &"-"& mid(str,3,2) &"-"& mid(str,5,2)
	End If
	makePersNr = str

End Function

%>[/red]
```

Anropas med: 

```
[red]makePersNr("800522")[/red]
```

**Redigerat:**
La till lite kod så nu bör dem flesta kombinationer fungera.. ex på kombinationer den fixar:

• 1980-05-22-8888
• 19800522-8888
• 1980 05 22
• 19800522 8888
• 800522-8888
• 800522
• 80 05 22
• 19800522

m.fl

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

## #5 — solbulle, 2003-05-28T15:49Z

Palle, det där verkar ju hyfsat avancerat, och bra.
Men hur blir det om någon knappar in: 220580?

Lite hypotetisk fråga kanske.

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

## #6 — Palle, 2003-05-28T18:22Z

> **solbulle skrev:**
>
> Palle, det där verkar ju hyfsat avancerat, och bra.
> Men hur blir det om någon knappar in: 220580?
> 
> Lite hypotetisk fråga kanske.

Tveksam på att det finns personnummer som slutar på ? men man vet jag aldrig. :OO §e
Hur eller hur, då lägger man ett javascript i textfältet som förbjuder andra tecken än siffror. ;)

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

## #7 — solbulle, 2003-05-28T19:04Z

Nja, jag menar inte att frågetecknet skulle vara med, jag undrar vad som händer om man knappar in det "tvärtom", alltså dag-månad-år.

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

## #8 — @nders, 2003-05-28T19:31Z

Några regler för input måste man ha. Det är omöjligt för ett script att gissa sig till vad som är månad och vad som är dag, och vad som är år, om delmängderna håller sig mellan 1 och 12.

Det bästa tipset är nog att reglera vad som kan matas in, antingen med ett javascript, eller att låta användarna välja år, månad och dag i separata \<select\>-menyer.

Hur som helst; Palles exempel verkar helt adekvat för detta.

Och sist, men inte minst: Välkommen till wF, ninae!

Mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/78338-siffror-till-datum
