Avatar billede kanstrup Nybegynder
18. september 2003 - 23:17 Der er 34 kommentarer og
1 løsning

Problemer med dato-ombytning.

Har hentet og modificeret en ganske udmærket kalender. Brugt lang tid på små detailer, og opdager så til sidst, at den HELT fra begyndelsen af bytter om på tallene i datoerne ; altså 11. juni bliver til 6. november, men KUN i visningen af månederne. Klikker man på den rigtige dato får man stadig tilføjelsen til den dag. Hvor skal jeg ende og begynde ?
Avatar billede eagleeye Praktikant
18. september 2003 - 23:24 #1
Det lyder som om der ikke er helt styr på datoerne. Det lyder lidt som om koden ikke bruger det dato format serveren køre med hele vejen igennem..

Hvis du sætte LCID til 1033 for UK dato format virker det så "rigtig" bare med engelske dato'er?

<% session.LCID = 1030 %>


Prøv evt at kigge efter noget kode hvor den finde måneden med Left, Mid funktion. eks kunne være:
strmonth = Left(seldate,2)
Avatar billede kanstrup Nybegynder
18. september 2003 - 23:34 #2
Sætter jeg dette ind ; <%Session.LCID = 1030%>, flytter tilføjelsen blot til dén dato, hvor teksten fejlagtigt står i måneds-oversigten. Til gendgæld står det så nu på dansk. Men altså det forkerte sted.
Avatar billede kanstrup Nybegynder
18. september 2003 - 23:39 #3
Mente egentlig dette ; <%@LCID=1030%> men går da ud fra, at det er det samme ?
Avatar billede eagleeye Praktikant
18. september 2003 - 23:40 #4
Problemmet kommer sikker fordi koden forvendter et bestemt dato format og bruger man date funkternerne antager de at datoen er i det format som serveren er sat til.
UK format er mm-dd-yyyy og DK format er dd-mm-yyyy.

Så hvis nu man overføre "11-06-2003" og man køre med UK dato format og skriver:
str = Left(dato,2) så får men månnede ud, var det DK format ville tallet tolkes som dagen, dermed byttes rundt på måned og dag.
Avatar billede kanstrup Nybegynder
18. september 2003 - 23:45 #5
Så helt konkret ; hvad tager jeg fat i ? Det ser jo temmelig inviklet ud !!!
Avatar billede kanstrup Nybegynder
18. september 2003 - 23:46 #6
Dét, der undrer mig mest, er at kalenderen var sådan helt fra begyndelsen, altså blev hentet sådan.
Avatar billede kanstrup Nybegynder
18. september 2003 - 23:47 #7
Du kan se en "u-berørt" udgave her : http://www.kanstrup-online.dk/kal2/ .
login : admin - admin .
Avatar billede eagleeye Praktikant
18. september 2003 - 23:48 #8
Du kan state med at kigge på hvordan datoen bliver ført rundt i systemet, hvilet sikkert er med en QuerString og så hvis det er formet

mm-dd-yyyy

Så kigge koden igennem og alle de steder hvor månnede hendtes men enten Month(dato) eller Left(dato,2) så tjekke den får den rigtige månede.

Problemmeet med Month(dato) er den vil give enten mm eller dd som månede alt efter hvilket formet serveren køre.
Avatar billede eagleeye Praktikant
18. september 2003 - 23:52 #9
Jeg tror det fordi du køre med DK dato format på serveren
Når man går ind på en side er formatet  ?date=11/5/2003  (mm/dd/yyyy) og siden skrifer 11 maj 2003..
Avatar billede eagleeye Praktikant
18. september 2003 - 23:54 #10
Det er i koden for  date.asp  som har den fejl
Hvis du skriver
<% session.LCID=1033%>
Så skriver den nok det rigtige dog med egelske navne for månede.
Avatar billede kanstrup Nybegynder
18. september 2003 - 23:59 #11
Rettede <% session.LCID=1030%> til <% session.LCID=1033%> , men 8. maj blev til 5. august !
Avatar billede eagleeye Praktikant
19. september 2003 - 00:01 #12
er det ikke også meningen?
Avatar billede kanstrup Nybegynder
19. september 2003 - 00:02 #13
Nej. Jeg ville tilføje en event til 8. maj, men den kom til at stå til 5. august.
Avatar billede eagleeye Praktikant
19. september 2003 - 00:06 #14
Det skal rette i den fil som hedder: date.asp
Avatar billede kanstrup Nybegynder
19. september 2003 - 00:13 #15
Er du sikker på, det er "date.asp" eller er det et gæt ? Jeg mener ; kender du kalenderen ? "date.asp" åbner et vindue med en nærmere beskrivelse af event'et.
Avatar billede kanstrup Nybegynder
19. september 2003 - 00:15 #16
I den er der dette :

<%
eventEmpty = True

Set RSEVENT = Server.CreateObject("ADODB.RecordSet")
RSEVENT.Open "SELECT * FROM Events ORDER BY Date", Conn, 1, 3
Do while NOT RSEVENT.EOF
rsdate = RSEVENT("Date")
If (Day(rsdate) = Day(request("date"))) AND (Month(rsdate) = CInt(Month(request("date")))) AND (Year(rsdate) = CInt(Year(request("date")))) Then
eventEmpty = False
%>

<tr>
<td><img src="../im/clear.gif" height="1" width="10"></td>
<td><font face="<%=Event_Font%>" size="<%=Event_Font_Size%>" color="<%=Event_Font_Color%>"><b><%=FormatDateTime(rsdate, vbShortTime)%></b></font></td>

Er det dér ?
Avatar billede kanstrup Nybegynder
19. september 2003 - 00:41 #17
Har virkelig brug for hjælp. Sidder og roder rundt i de forsk. muligheder, og får ikke andet ud af det end flere fejl !
Avatar billede eagleeye Praktikant
19. september 2003 - 09:56 #18
Jeg prøver at forklare det igen:
Det er sikkert et problem i alle filerne hvis kalenderen ikke er deasígnet ordenligt.

EKS jeg trykker på 7 september og denne side åbner:
http://www.kanstrup-online.dk/kal2/date.asp?date=9/7/2003
Altså er dato formatet i streng mm/dd/yyyy

Når så koden vil finde månede for datoen og den bruger Month eksvis sådan her:
dato = Request.QueryString("date")

maaned_dato = Month(dato)

Så vil den på en server som køre Rigtigt dato format set fra kalenderen som er UK, tage 9 som månede så det bliver september. Når du køre med DK dato format vil Month(date) give 7 som månede så der står Juli

Du kan prøve dette link:
http://www.kanstrup-online.dk/kal2/date.asp?date=9/22/2003

Så skriver den det rigtig fordi Month ikke kender månede 22 og tager så 9 som månede da man sikkert bare har byttet rundt på dag og månede.

så JA der i filen date.asp du skal sætte det ind....

Du har to muligheder.
1. Sæt session.LCID = 1033 for UK dato format på SAMLIGE sider i kalendere

2. konverten datoen i koden sådan ?date=9/6/2003 bliver til 6/9/2003 så month og day findes rigitgt med Day og Month:

dato = Request.QueryString("date")
datoArr = Split(dato,"/")
dato = datoArr(1) & "/" & datoArr(0) & "/" & datoArr(2)


Men det hele bunder i dårligt design af kalenderen og den måde at håndtere datoer på.
Avatar billede kanstrup Nybegynder
19. september 2003 - 10:34 #19
OK. Det var en fan's masse information. Prøver jeg at gå i gang med nu. Jeg starter med den originale og forsøger at få den til at virke. Så ved jeg, i dét det sker, HVAD jeg har pillet for meget ved i den anden, og kan så forsøge at rette det. Jeg vender tilbage til dig, når jeg har udtømt mulighederne, og så skal du ha' tak, fordi du gider bruge tid på det. :-)
Avatar billede kanstrup Nybegynder
19. september 2003 - 17:55 #20
>> eagleeye : Må jeg sende dig en zip ? Jeg er utilbøjelig til at kassere alt det pille-arbejde, jeg har haft med tilpasningen, og jeg er BESTEMT villig til at afsætte flere point's, hvis du gider hjælpe ? Ellers får du naturligvis de 60 alligevel.
Avatar billede kanstrup Nybegynder
19. september 2003 - 17:57 #21
Tilpasningen kan du i øvrigt se hér ; http://www.aarhusvest.dk/kalender/ .
Avatar billede eagleeye Praktikant
19. september 2003 - 19:37 #22
Så vidt jeg kan se er du da kommet et stykke, den viser rigtig dag og månede her:
http://www.aarhusvest.dk/kalender/date.asp?date=9/3/2003

Det man skal gøre når man laver en kalender er at enten 100% bruger dato funktioerne til alt med datoerne, eller 100% bruge streng-funktionerne og bruge et bestemt dato format og kun bruge dato funktionerne til at hendte navn på dag og månede.

Du kan da prøve at sende filerne: husk at skrive et link til dette spm eller noget tekst med eksperten i subject, ellers bliver den mail bare slette ;)
eagleeye@c.dk
Avatar billede eagleeye Praktikant
19. september 2003 - 22:26 #23
Jeg er ved at kigge på det. Ja det helt fint med subject ;)

Du har jo selv fået rette en masse ;)

I filen add2.asp er de første par linjer rettet til dette, så den validere datoen er en gyldig DK dato.

<%
Session.LCID=1030
'If IsDate(request("Date_Month") + "/" + request("Date_Day") + "/" + request("Date_Year")) Then
If IsDate(request("Date_Day") + "/" + request("Date_Month") + "/" + request("Date_Year")) Then


Der hvor der gemmes i datasen er der også rette til DK dato format:

'eventDate = request("Date_Month") + "/" + request("Date_Day") + "/" + request("Date_Year") + " " + request("Time_Hour") + ":" + request("Time_Minute") + ":00 " + request("Time_AMPM")
eventDate = request("Date_Day") + "/" + request("Date_Month") + "/" + request("Date_Year") + " " + request("Time_Hour") + ":" + request("Time_Minute") + ":00 " + request("Time_AMPM")


Jeg skal nok sende filerne til dig det er bare for lidt info jeg skriver jeg her. Jeg kiggr vidre på dem der er lidt et par filer ;)
Vil du havde Klokken gemt som 12:00:00AM/PM eller skal det ikke være 24 timer ur?
Avatar billede eagleeye Praktikant
19. september 2003 - 22:30 #24
du kan evt. selv lige rette de to/tre ting beskrevet for det lader til at være en af hoved årsagerne til det ikke viker rigtigt at datoen i databsen er formateret forkert.
Avatar billede eagleeye Praktikant
19. september 2003 - 22:33 #25
Fandt en anden fejl mere.:
Den regner den 1. i månede forkert ud, se http://www.aarhusvest.dk/kalender/ der står den første september er en mandag det er en søndag..

For at rette det så på default.asp siden ret dette:

'firstday = Weekday(CDate(navmonth & "/" & 1 & "/" & navyear))
firstday = Weekday(CDate("1/" & navmonth & "/" & navyear))
Avatar billede eagleeye Praktikant
19. september 2003 - 22:35 #26
Glem den sidste forklaring..... den regner rigtig, det var fordi jeg lige havde sat lidt ekstra kode ind for test  ;)
Avatar billede kanstrup Nybegynder
20. september 2003 - 06:35 #27
Har lige været inde på "Eksperten" og har set alle dine beskeder :
Prøver først dette :

For at rette det så på default.asp siden ret dette:

'firstday = Weekday(CDate(navmonth & "/" & 1 & "/" & navyear))
firstday = Weekday(CDate("1/" & navmonth & "/" & navyear))

Og har allerede glemt det ! ( Skulle lige prøve, men det "screw'ede" bare resten op !) Hvad har du gjort ? Jeg må indrømme, at jeg IKKE er god til ASP ( endnu ! ), men jeg er nysgerrig !!!

Laver lige et spørgsmål til dig, så du kan hente nogle point's ? Lyder ;

>> eagleeye : Nye problemer med dato-ombytning.
Avatar billede kanstrup Nybegynder
20. september 2003 - 06:39 #28
Og JA !!! Jeg ville være MEGET glad for et 24 timer's ur !!!
Avatar billede kanstrup Nybegynder
20. september 2003 - 08:05 #29
Dét er mit næste problem !!!
Avatar billede eagleeye Praktikant
20. september 2003 - 11:44 #30
fik du mailen?
Avatar billede eagleeye Praktikant
20. september 2003 - 11:56 #31
JEg har rette så koden kan køre på en server med DK datoformat:

Eksvis:
'firstday = Weekday(CDate(navmonth & "/" & 1 & "/" & navyear))
firstday = Weekday(CDate("1/" & navmonth & "/" & navyear))


Så er det lavet om så firstday ikke bliver: mm/1/yyyy men 1/mm/yyyy så det er den første i måneden.
Avatar billede eagleeye Praktikant
20. september 2003 - 17:12 #32
Jeg har lige været inde og se i kalenderen ;)

Jeg svare bare her så.
Ang. http://www.eksperten.dk/spm/403565 så svar selv og tag de point.
Det er nemlig ikke tilladt at give mere end 200 point for et spørgsmål.

Hvis du vil give flere end de 60 point kan du i dete spørgsmål afsætte flere point ved at trykke på tallet "60". Eller fra boksen Funktioner "Afsæt flere point" linket.

Husk (hvis du ønsker) at afsætte flere point inden du acceptere mit svar.
Avatar billede kanstrup Nybegynder
20. september 2003 - 17:40 #33
De er hermed afsat, og svaret er accepteret ! Du skal ha' MANGE tak !!! For både dato-problemerne og 24-timers-uret ! Jeg er SÅ lettet ! Hvis du har kigget på siden (www.aarhusvest.dk) har du måske en fornemmelse af, at jeg har puttet en større kage i munden, end jeg kan spise ; Du har helt ret, men har man sagt A må man også sige B ! Så jeg bliver ved ! Og hvem ved ; måske lærer jeg noget på vejen !
Avatar billede kanstrup Nybegynder
20. september 2003 - 17:40 #34
Lukker det andet spørgsmål.
Avatar billede steen_hansen Forsker
08. april 2004 - 23:00 #35
kanstrup, er kalenderen noget du vil dele med os andre? Jeg har længe været på udkig efter en god kalender.
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