Avatar billede kratluskeren Nybegynder
10. september 2003 - 20:51 Der er 26 kommentarer og
1 løsning

formatering af dk dato til US dato

Hejsa hermed et lille spørgsmål:
jeg skal smide en dato ned i en MySQL database:
Formatet indtastet således: dd-mm-yyyy
Jeg skal lave det om til: yyyy-mm-dd

Er der en snedig måde?
Jeg kan selvfølgelig lege lidt med datoen som en streng og bytte rundt på elementerne, men jeg ved der findes nogle funktioner til at håndtere datoer.
Oplever dog at de fucker datoen op og ikke leverer stabile konverteringer.
Avatar billede eagleeye Praktikant
10. september 2003 - 20:55 #1
Du kan bruge Year, month, day til at formater med:

dato = "24-12-2003"
datoStr = Year(dato) & "-" & Month(dato) & "-" & Day(dato)
Avatar billede eagleeye Praktikant
10. september 2003 - 20:56 #2
Og vil du havde 0 men så 09 ikke bliver til 9 så skal der right med:

dato = "24-12-2003"
datoStr = Year(dato) & "-" & Right("0" & Month(dato),2) & "-" & Right("0" & Day(dato),2)
Avatar billede thesurfer Nybegynder
10. september 2003 - 21:01 #3
eagleeye> hvad sker der så hvis det i stedet for 9->09 er 11? kommer der så ikke til at stå 011?
Avatar billede eagleeye Praktikant
10. september 2003 - 21:03 #4
Nej ikke når der er Right(xxx,2) med, så bliver "011" --> "11"
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:06 #5
Takker, men hvis jeg nu skriver
03-04-2003 bliver den lavet om til 04-03-2003, og det fatter jeg ikke :)
Avatar billede eagleeye Praktikant
10. september 2003 - 21:08 #6
Hvis du skriver 03-04-2003  skulle det hvis du køre med DK dato på serveren blive til:  2003-04-03
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:10 #7
jow men det gør det ikke. Det er dér mit problem ligger.
Måske kører serveren ikke med DK.
Hvad gør jeg så?
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:11 #8
Ehm mente at 03-04-2003 => 2003-03-04  :D
Avatar billede eagleeye Praktikant
10. september 2003 - 21:11 #9
Så sætte du denne linje i toppen af din kode:

<% Session.LCID = 1030 %>
Avatar billede eagleeye Praktikant
10. september 2003 - 21:11 #10
Ja så køre den ikke DK format så køre den UK format.
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:14 #11
Så får jeg denne:
HTTP Error 507
507 Unexpected

The Web server encountered an unexpected error while communicating with the ASP service.

Please contact the server's administrator if this problem persists.
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:14 #12
Kører på b-one som benytter software fra Chilisoft
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:16 #13
og nu fucker den mit session object op med de data der ligger i det
Avatar billede eagleeye Praktikant
10. september 2003 - 21:18 #14
Så fjern det igen, hvis du ved serveren køre med UK format og du takster ind i DK format så kan man bytte rundt på Month og Day:

dato = "03-04-2003"
datoStr = Year(dato) & "-" & Right("0" & Day(dato),2) & "-" & Right("0" & Month(dato),2)
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:18 #15
Håber I har en snedig løsning for jeg har prøvet i flere timer nu at knække den
Avatar billede eagleeye Praktikant
10. september 2003 - 21:20 #16
Eller skal du lave det med String funktionerne:

dato "03-04-2003"
datoStr = Mid(dato,7,4) & "-" & Mid(dato,4,2) & "-" & Left(dato,2)

Fordelen ved at bruge dato funkterne er at hvis man skriv 3-4-2003 så vil det give det rigtige men string funkterne vil give noget forkert da der mangler 0'er i teksten.
Avatar billede thesurfer Nybegynder
10. september 2003 - 21:22 #17
eagleeye> du er sgu genial.. bare så du ved det :)
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:23 #18
forslag kl. 21:18:02
Se så virker det med ovenstående dato eksempel, men det går det galt her i stedet:
24-10-2003 => 2003-24-10
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:25 #19
Der var den sq
Du er en snut eagleeye
Avatar billede thesurfer Nybegynder
10. september 2003 - 21:25 #20
sagde det jo :)
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:26 #21
kan man lige gøre det sådan at 03-04-03 => 03-04-2003?
strammer jeg den?
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:30 #22
well det gør databasen jo selv.
Ingen problemer.

Kan du ikke smide det som et svar så jeg kan give dig dine velfortjente points?
Avatar billede eagleeye Praktikant
10. september 2003 - 21:30 #23
Ja skal den så tilføje "20" for > 2000

dato = "03-04-2003"
aar = Mid(dato,7,4)
if len(arr) = 2 then arr = "20" & aar
datoStr = aar & "-" & Mid(dato,4,2) & "-" & Left(dato,2)
Avatar billede eagleeye Praktikant
10. september 2003 - 21:31 #24
Sådan her:


dato = "03-04-2003"
aar = Mid(dato,7,4)
if len(aar) = 2 then arr = "20" & aar
datoStr = aar & "-" & Mid(dato,4,2) & "-" & Left(dato,2)



og så den korte:
dato = "03-04-2003"
datoStr = Right("20" & Mid(dato,7,4),4) & "-" & Mid(dato,4,2) & "-" & Left(dato,2)
Avatar billede thesurfer Nybegynder
10. september 2003 - 21:35 #25
hmm.. if len(aar) = 2 then arr = "20" & aar
så skal han lave ændre i scriptet om ca 96 år og 3 mdr :)
Avatar billede eagleeye Praktikant
10. september 2003 - 21:39 #26
Ja det en lille biting :)
Avatar billede kratluskeren Nybegynder
10. september 2003 - 21:41 #27
Det er så til at leve med :)
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel