Avatar billede mini97ad Nybegynder
08. april 2002 - 15:49 Der er 8 kommentarer og
1 løsning

Problemer med tidsformat

Hej, jeg har startet en ny hjemmeside op og har problemer med en markedsplads jeg anvender. Se den her :
http://www.hifionline.dk/marked/default.asp

Markedspladsen er hentet fra et firma, der hedder XCENT. Forneden på siden fremgår datoen på markedspladsen. Princippet er at inrykket annoncer slettes efter 30 dage. Her kommer mit problem : Spontant kan tidsformattet ændrer sig til dansk tid. eksempelvis fra 4/8/2002 til 8-4-2002. Når dette sker sletter den automatisk de indrykkede annoncer??? Hvorfor skifter den umotiveret tidsformat af sig selv? Er der nogle af jer der ved. Det er jo lidt et problem, at den sletter annoncerne nogle gange når dette sker?

På forhånd tak for hjælpen
Avatar billede a-torsten Nybegynder
08. april 2002 - 15:51 #1
Avatar billede mini97ad Nybegynder
08. april 2002 - 15:56 #2
Hej, tak for svar og den side forklarer jo også glimrende hvordan man returnere forskellige tidsformater. Men den forklare jo ikke mit problem som er at siden returere forskellige tidsformater UDEN AT JEG FORTAGER ÆNDRINGER - dansk nogle gange og amerikansk andre gange?
Avatar billede coltau Juniormester
08. april 2002 - 19:36 #3
Hvis du arbejder med Acces er problemet velkendt. Gør du det. ?
Avatar billede mini97ad Nybegynder
08. april 2002 - 19:40 #4
Ja, det er en access database - kan problemet løses, så markedspladsen stadigvæk kører med access database? Nu har den ¤#"&"#¤/#¤ lige slettet alt igen i forbindelse med tidsformat konvertering :-)
Avatar billede coltau Juniormester
08. april 2002 - 19:50 #5
Jeg prøver med en forklaring alligevel.

Session.LCID = 1030 gør at ASP formatere datoen efter formatet: DD-MM-YYYY

Access (og de fleste databaser) vil altid (læs: ALTID) have formatet: MM-DD-YYYY. det styres ikke af LCID. !

At du kan opleve at datoen ændre sig er fordi at Access konsekvent bytter om på måned og dag - altså forventer at den får formatet MM-DD-YYYY - men hvis den så fremkommer med en ugyldig dato så acceptere den formatet som DD-MM-YYYY.
Det lyder utroligt - men er sandt.

Hvis du laver denne SQL:
Session.LCID = 1030
SQL = "insert into tabel (Dato) values (" & Now & ")"
så vil datoerne fra 01-MM-YYYY til 12-MM-YYYY blive gemt forkert i databasen - men datoerne fra 13-MM-YYYY og til 31-MM-YYYY vil blive gemt korrekt.

Hvis du vil sikre dig så anvende en funktion til at formatere alle datoer der gemmes via SQL-sætninger.

function FDate(V)
  FDate = Month(V) & "-" & Day(V) & "-" & Year(V)
end function

SQL = "insert into tabel (Dato) values (" & FDate(Now) & ")"

Andet skal du faktisk ikke gøre for at dine datoer bliver korrekt.

PS: det gælder ikke for poster indsat sådan:

RS.AddNew
RS("dato") = Now ' Den er god nok
RS.Update

Håber du kan bruge lidt af det.
Avatar billede coltau Juniormester
08. april 2002 - 19:51 #6
Shit: I eksemplerne glemte jeg at omklamre datoerne med #
Avatar billede mini97ad Nybegynder
08. april 2002 - 20:06 #7
Tak for svar - jeg går i krig med at prøve at ændre i koden. :-) Hvis jeg forstår det korrekt, så kan jeg prøve at gøre følgende :

Skrive eksakt ved hver sql forespørgelse og de steder der gemmes i databasen : function FDate(V)

  FDate = Month(V) & "-" & Day(V) & "-" & Year(V)
end function

SQL = "insert into tabel (Dato) values (" & FDate(Now) & ")"

Hvor omklamre jeg med #? Foreksempel her : (#Dato#)?

tak for dit glimrende svar :-)
Avatar billede coltau Juniormester
08. april 2002 - 20:19 #8
Helt korrekt skal det skrives sådan:

SQL = "insert into tabel (Dato) values (#" & FDate(Now) & "#)"
Avatar billede mini97ad Nybegynder
08. april 2002 - 20:44 #9
ok, tak for hjælpen!
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