Avatar billede alleslev Nybegynder
01. maj 2009 - 10:39 Der er 12 kommentarer og
1 løsning

Kalneder script kan ik finde ude af forskellen på eks. 1 maj og 5 januar

Hej

Jeg har et kalender script hvor man kan lægge event ind i gennem et admin modul, men jeg har nu opdaget at vis man f.eks lægger et event ind 1 maj og trykker på det så åbner den datoen 5 januar (som om at 1 er månenden og maj som er 5 er dagen), trykker man ind på en dato som ligger over 12 d.v.s så kan det jo ikke være en måned så kan den sagtens finde ud af det.

kalnderen kan ses her:

http://www.mc-hasselager.dk/default.asp?side=kalender

når man trykker på et event er det dennne kode der bliver kørt:

<a href="" onclick="window.open('date.asp?date=<%=dateSelect%>',

filen date.asp ser således ud:

<!--#include file="dsn.asp"-->

<!--#include file="body.asp"-->

<html>

<head>

<title><%=RSBODY("Page_Title")%></title>



<!--#include file="style.asp"-->



</head>

<body bgcolor="<%=RSBODY("Background_Color")%>" text="<%=RSBODY("Font_Color")%>" link="<%=RSBODY("Link_Color")%>" vlink="<%=RSBODY("Visited_Link_Color")%>" alink="<%=RSBODY("Active_Link_Color")%>">

<%



navmonth = request.querystring("month")

navyear = request.querystring("year")



If navmonth = "" Then

    navmonth = Month(Date)

End If



If navyear = "" Then

    navyear = Year(Date)

End If



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





leapTestNumbers = navyear / 4

leapTest = (leapTestNumbers) - Round(leapTestNumbers)

If navmonth = 2 Then

    If leapTest <> 0 Then

        lastDate = 28

    Else

        lastDate = 29

    End If

ElseIf ((navmonth = 4) OR (navmonth = 6) OR (navmonth = 9) OR (navmonth = 11)) Then

    lastDate = 30

Else

    lastDate = 31

End If



lastMonth = navmonth - 1

lastYear = navyear

If lastMonth < 1 Then

    lastMonth = 12

    lastYear = lastYear - 1

End If



nextMonth = navmonth + 1

nextYear = navyear

If nextMonth >12 Then

    nextMonth = 1

    nextYear = nextYear + 1

End If





dateCounter = 1

weekCount = 1



DateEnd = lastDate

DateBegin = firstDate



Weekday_Font = RSBODY("Weekday_Font")

Weekday_Font_Size = RSBODY("Weekday_Font_Size")

Weekday_Font_Color = RSBODY("Weekday_Font_Color")

Weekday_Background_Color = RSBODY("Weekday_Background_Color")

Date_Font = RSBODY("Date_Font")

Date_Font_Size = RSBODY("Date_Font_Size")

Date_Font_Color = RSBODY("Date_Font_Color")

Date_Background_Color = RSBODY("Date_Background_Color")

Event_Font = RSBODY("Event_Font")

Event_Font_Size = RSBODY("Event_Font_Size")

Event_Font_Color = RSBODY("Event_Font_Color")

Cell_Width = RSBODY("Cell_Width")

Cell_Height = RSBODY("Cell_Height")

Cell_Background_Color = RSBODY("Cell_Background_Color")

Border_Size = RSBODY("Border_Size")

Border_Color = RSBODY("Border_Color")

%>

<%=RSBODY("Header")%>





<table border="0" cellpadding="0" cellspacing="0" align="center">

<tr>

<td align="center">



<table border="0" cellpadding="0" cellspacing="0" align="center">

<tr>

<td bgcolor="<%=Border_Color%>">



<table border="0" cellpadding="2" cellspacing="<%=Border_Size%>">

<tr>

<td align="center" bgcolor="<%=Weekday_Background_Color%>"><font face="<%=Weekday_Font%>" size="<%=Weekday_Font_Size%>" color="<%=Weekday_Font_Color%>"><b><%If (RSBODY("Abbreviate_Months") = True) Then%><%=MonthName(Month(request("date")), true)%><%Else%><%=MonthName(Month(request("date")))%><%End If%>&nbsp;<%=Day(request("date"))%>,&nbsp;<%=Year(request("date"))%></b></font></td>

</tr>

<tr>

<td align="center" bgcolor="<%=Date_Background_Color%>">





<table border="0" cellpadding="0" cellspacing="2">

<%

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 colspan="3"><font face="<%=Event_Font%>" size="<%=Event_Font_Size%>" color="<%=Event_Font_Color%>"><b><%=FormatDateTime(rsdate, vbLongTime)%></b>&nbsp;&nbsp;<%=RSEVENT("Event_Name")%></font></td>

</tr>



<%

If (NOT isNull(RSEVENT("Location"))) Then

%>

<tr>

<td><img src="../im/clear.gif" height="1" width="10"></td>

<td><font face="<%=Event_Font%>" size="<%=Event_Font_Size%>" color="<%=RSBODY("Link_Color")%>"><b>Location</b></font></td>

<td><font face="<%=Event_Font%>" size="<%=Event_Font_Size%>" color="<%=Event_Font_Color%>"><%=RSEVENT("Location")%></font></td>

</tr>

<%End If%>



<tr>

<td><img src="../im/clear.gif" height="1" width="10"></td>

<td><font face="<%=Event_Font%>" size="<%=Event_Font_Size%>" color="<%=RSBODY("Link_Color")%>"><b>Description</b></font></td>

<td><font face="<%=Event_Font%>" size="<%=Event_Font_Size%>" color="<%=Event_Font_Color%>"><%=RSEVENT("Description")%></font></td>

</tr>



<% End If

RSEVENT.movenext

Loop

RSEVENT.close

%>

</table>



<%

If (eventEmpty = True) Then%>

<font face="<%=Event_Font%>" size="<%=Event_Font_Size%>" color="<%=Event_Font_Color%>">There are currently no events scheduled for this day.</font>

<%End If%>



</td>

</tr>

</table>



</td>

</tr>

</table>



</td>

</tr>



<!-- Begin Ocean12 Technologies Copyright Notice -->

<!-- THIS CODE MUST NOT BE CHANGED -->

<tr>

<td align="center"><font face="Verdana" size="1">Maintained with the <a href="http://scripts.ocean12tech.com">Ocean<i>12</i> ASP Calendar Manager</a> v1.01<br>&copy;2001 <a href="http://scripts.ocean12tech.com">Ocean<i>12</i> Technologies</a>, all rights reserved.</font></td>

</tr>

<!-- End Ocean12 Technologies Copyright Notice -->



</table>





<%=RSBODY("Footer")%>

</body>

</html>

<!--#include file="dsn2.asp"-->

er der nolge der kan se hvad der er galt, siden det kun virker med event der er fra den 13 i en måned.

Mange hilsner
Andreas
Avatar billede fennec Nybegynder
01. maj 2009 - 10:48 #1
Må jeg gætte på at du bruger Access som database??

Access SKAL have datoer i mm-dd-yyyy formatet (bemærk måned først)

Du skal derfor omformatere datoerne inden du bruger dem i sql.

dato = "01-31-2009" '<-- Se måned og dag er bytte om.
sql = "insert into event(tekst, dato) values('Aktivitet', #"& dato &"#)"
Avatar billede mitbrugernavn Praktikant
01. maj 2009 - 10:50 #2
ja - den bytter om på dag og måned.

når du i admin sætter dato ind skal du vende dag og måned om

dato_indsaet = request("dato")

dato_indsaet = month(request("dato"))&"-"&day(request("dato"))&"-"&year(request("dato"))


sql = insert into tabel (dato) values ('"&dato_indsaet&"')

sql strengen vender det om automatisk og så står det korrekt og vises også korrekt
Avatar billede mitbrugernavn Praktikant
01. maj 2009 - 10:51 #3
denne streng hvis det er et tekstfelt i db

sql = insert into tabel (dato) values ('"&dato_indsaet&"')

denne steng hvis det er et dato felt i db

sql = insert into tabel (dato) values (#"&dato_indsaet&"#)
Avatar billede fennec Nybegynder
01. maj 2009 - 10:52 #4
Jeg har denne funktion til det:

function DBDate(fDate)
  DBDate = right("0"&month(fDate), 2) &"-"& right("0"&day(fDate), 2) &"-"& year(fDate)
end function
Avatar billede alleslev Nybegynder
01. maj 2009 - 10:57 #5
Jep jeg bruger acces som satabase til det, men vil lige prøve at kigge i admin delen hvordan den smider datoerne ind i acces.
Avatar billede alleslev Nybegynder
01. maj 2009 - 11:07 #6
her er den kode er smider eventet ind i acces db efter at være blevet valideret i en anden fil. men ville jo gerne udngå at skrive det hele om.

If IsDate(request("Date_Month") + "/" + request("Date_Day") + "/" + request("Date_Year")) Then



Set RSEVENTS = Server.CreateObject("ADODB.Recordset")

RSEVENTS.Open "Events", Conn, 2, 2

RSEVENTS.addnew



RSEVENTS("Event_Name") = request("Event_Name")

RSEVENTS("Description") = request("Description")

RSEVENTS("Category") = request("Category")



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

RSEVENTS("Date") = eventDate



If (request("Location") = "") Then

    RSEVENTS("Location") = Null

Else

    RSEVENTS("Location") = request("Location")

End If



RSEVENTS.update



RSEVENTS.close

set RSEVENTS = nothing



End If
Avatar billede softspot Forsker
01. maj 2009 - 11:09 #7
Prøv lige at undersøge om session.lcid er sat til 1030, ellers kan dette måske løse dit problem, altså:

session.lcid = 1030
Avatar billede alleslev Nybegynder
01. maj 2009 - 11:18 #8
det står allerede i toppen af filen, så det er ik problemet, men kan se det hanlder om at for omskrevet den måde som datoerne sendes vidre på, den linie der sendes i adresse feltet ser så ledes ud:

http://www.mc-hasselager.dk/date.asp?date=5/1/2009

vis man åbner den i browseren og så skriver den om til

http://www.mc-hasselager.dk/date.asp?date=1/5/2009

så viser den det der skal ske 1 maj 2009

det må da kunne alde sig gøre at sammen skrive datoerne i den rigitge rækkefølge
Avatar billede alleslev Nybegynder
01. maj 2009 - 11:49 #9
Så lykkeds det sku alligevel...egenlgit meget simpelt.

<% Do while weekCount <= 7
dateSelect2 = dateCounter & "/" & navmonth & "/" & navyear
dateSelect = navmonth & "/" & dateCounter & "/" & navyear %>

indrksrev dateselect2 og begyndte at bruge den til at finde eventet med i stedet for dateselect og det virker tilsyndeldaende, vis der er nogle der vil ha point for ulejligheden kan i smide et svar.
Avatar billede softspot Forsker
01. maj 2009 - 12:00 #10
Du kan benytte command-objektet i stedet for, så slipper du helt for det der streng konverteringshelvede. Generelt set er det også en bedre måde at forespørge en database på, da det er en mere sikker metode (det beskytter dig i høj grad helt fra SQL-injections).
Avatar billede alleslev Nybegynder
01. maj 2009 - 12:21 #11
Ja det er muligt..hmm er ikke helt hjemme i alt det her ASP...er bare god til at klippe kode sammen og få noget tila t virke, men kan du give mig et eksempel. jeg går ud fra det er en ændring når man henter data fra databasen,

kan du evt. give et kort eksempel på det...så kan jeg nok skroive det færdigt...
Avatar billede softspot Forsker
02. maj 2009 - 01:59 #12
Du kan evt. se min artikel vedr. brugen af command-objektet: http://www.eksperten.dk/guide/1250
Avatar billede alleslev Nybegynder
03. maj 2009 - 15:51 #13
Lukket. 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