Avatar billede ncp Nybegynder
03. juni 2002 - 00:12 Der er 17 kommentarer og
1 løsning

Format dato og tid...

Hey, jeg har et udtræk fra min db der ser sådan ud:

DD-MM-YYYY HH:MM:SS

det skal kortes ned til:

DD-MM HH:MM

problemet med at bruge day og month kommandoerne er at den 5. vil se sådan ud:

5

og ikke:

05

som den skal...
Avatar billede medions Nybegynder
03. juni 2002 - 00:19 #1
intDD = Day(rs("dato"))
intMM = Month(rs("dato"))

If Len(intDD) < 2 Then
  intDDa = intDDa & 0 & intDD
End If

Response.Write(intDDa)

//>Rune
Avatar billede grunken Nybegynder
03. juni 2002 - 00:19 #2
if length(day(UDTRÆK)) = 1 Then
  response.write "0" & day(UDTRÆK)
else
  response.write day(UDTRÆK)
end If

er da en idé

-grunken
Avatar billede grunken Nybegynder
03. juni 2002 - 00:20 #3
lengt = len

*LOL*
Avatar billede a1a1 Novice
03. juni 2002 - 00:45 #4
man kan også bare

dDato = Right("0" & Day(Rs("dato")),2) & "-" & Right("0" & Month(rs("dato")),2)
Avatar billede a1a1 Novice
03. juni 2002 - 00:45 #5
osv...
Avatar billede tmceu Praktikant
03. juni 2002 - 01:44 #6
Jeg anvender ofte en datofunktion i stil med denne:

Function MyDate(varDate)
' Returnerer en dato formateret som DD.MM.YY

dim intDay, intMonth, intYear

    If IsDate(varDate) Then
        intDay = Day(varDate)
        intMonth = Month(varDate)
        intYear = Year(varDate)

        If Len(intMonth) = 1 Then intMonth = "0" & intMonth
        If Len(intDay) = 1 Then intDay = "0" & intDay

        If Len(intYear) = 4 Then
            MyDate = intDay & "." & intMonth & "." & Right(intYear, 2)
        Else
            MyDate = intDay & "." & intMonth
        End If
    Else
        MyDate = "Ugyldig dato"
    End If

End Function

Lidt i samme stil som Medions' forslag, blot som yderligere inspiration.
Avatar billede oasen Nybegynder
03. juni 2002 - 03:22 #7
Det var nok lige så let at indsætte formatet "korrekt" i databasen fra start af.

Altså:

Session.LCID = 1030
Dato = Date & " " & Time

Dette vil returnere både måned og dag med 2 cifre uanset datoen.

Du kan så lave en lille løkke til at "rette op" på de datoer, der allerede er indsat i DB'en:

strSQL = "Select DinKolonne From DinTabel"
Set rs = Conn.Execute(strSQL)

Dim Gammeltformat, arrDato

Do While Not rs.EOF
    Gammeltformat = rs("DinKolonne")

    arrDato = Split(Gammeltformat,"-")

    If Len(arrDato(0)) = 1 Then
        Nydag = "0" & arrDato(0)
    Else
        Nydag = arrDato(0)
    End If
    If Len(arrDato(1)) = 1 Then
        Nymaaned = "0" & arrDato(1)
    Else
        Nymaaned = arrDato(1)
    End If

    Nytformat = Nydag & "-" & Nymaaned & "-" & arrDato(3)

    'Opdater cellen med "Nytformat"   

    rs.MoveNext
Loop
Avatar billede oasen Nybegynder
03. juni 2002 - 03:26 #8
Ups - arrDato(3) skal hedde arrDato(2)
Avatar billede tmceu Praktikant
03. juni 2002 - 08:52 #9
Oasen >> det er da det værste vrøvl jeg har hørt idag, men jeg er selvfølgelig også lige stået op :-)

Dit første statement holder ikke nødvendigvis, for selv om du sætter LCID = 1030, er den stadig afhængig af regionale indstillinger på serveren. På min maskine er resultatet af dit forslag eks. 03-06-2002 08:48:53.

Og dit sidste forslag til "genopretning" af eksisterende data putter jeg i samme kategori, for det afhænger altså af hvilken database og datatype datoen er lagret i. Prøv eks. med SQL Server :-)
Avatar billede eagleeye Praktikant
03. juni 2002 - 09:21 #10
'Disse sætte 0 foran dag/månede/time/minuter
d_m = string(2-len(Month(rs("dato"))),"0") & Month(rs("dato"))
d_d = string(2-len(Day(rs("dato"))),"0") & Day(rs("dato"))
t_h = string(2-len(Hour(rs("dato"))),"0") & Hour(rs("dato"))
t_m = string(2-len(Minute(rs("dato"))),"0") & Minute(rs("dato"))

datoStr = d_d & "-" & d_m & " " & t_h & ":" & t_m
Response.write datoStr
Avatar billede a1a1 Novice
03. juni 2002 - 10:28 #11
vad er der i vejen med:
dagen = Right("0" & Day(Rs("dato")),2)

og bare for at slå det helt fast så skal man ALTID bruge datoformatet:
YYYY-MM-DD HH:MM:SS, når man indsætter eller opdaterer i en database, så er der aldrig fejl eller "misfortåelser" , uanset server indstillinger browsertype, database osv....

:)
Avatar billede oasen Nybegynder
03. juni 2002 - 10:54 #12
tmceu ---> Når ikke andet er oplyst, går jeg ud fra, det er en Access DB.

Koden virker som den skal, jeg har prøvet den med tre forskellige reg. indstillinger nu.
Så det er ikke noget vrøvl, men det kan da godt være, du har en bedre måde.

Og det format, der returneres hos dig, er også det, der skal returneres. 03-06-2002 08:48:53
Avatar billede oasen Nybegynder
03. juni 2002 - 10:59 #13
a1---> Ja, sådan indsætter jeg den også altid, så der kan indexeres, men nu bad han om et andet format...
Avatar billede a1a1 Novice
03. juni 2002 - 11:13 #14
(hvad har det med indexering at gøre...?)

ja et andet visnings format....

som jeg der var to eksempler på og så kom jeg med et, og du kom med en dobbelt forvirende metode at gøre det samme som min version...
(og en mystisk måde at finde datoformat på, hvis nu ikke at LCID 1030 understøttes af den server du ligger det på vil dagen jo næppe være det første element i din array...(us format MM/DD/YY eller standard SQL format YYYY-MM-DD....

:)
Avatar billede oasen Nybegynder
03. juni 2002 - 11:40 #15
Det kommer jo an på, om datoerne ligger i et dato-felt eller et text-felt. Hvis det er et text-felt er det jo LIDT lettere at indexere med yyyymmddhhmmss.

Jeg har endnu ikke oplevet en server, der ikke kan formatere datoen med LCID. Men om ikke andet, kan man jo bare udskrive LCID og se, hvad der returneres.
Avatar billede tmceu Praktikant
03. juni 2002 - 12:05 #16
oasen >> nu var det ikke for at starte en langvarig principiel diskussion om hvad der er rigtigt, for det bliver vi måske ikke enige om lige med det samme :-)

Men det var mere for at gøre opmærksom på, at der ligger nogle forudsætninger bag dit forslag som du ikke gør opmærkom på.

Og så skriver du at 03-06-2002 08:48:53 er den dato der skal vises, men der spørges altså på formatet DD-MM HH:MM
Avatar billede oasen Nybegynder
03. juni 2002 - 12:16 #17
DD-MM HH:MM ? Det har du da ret i. Ja, så var det jo noget værre vrøvl, jeg skrev. Min fejl - Det beklager jeg.

Men det hele ville nu være lettere, hvis manden oplyste lidt mere.
Avatar billede ncp Nybegynder
03. juni 2002 - 16:58 #18
brugte den fra eagleeye, den synes jeg var nemmest og lettest... men takker også får den andre bud...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester