Avatar billede eyes Nybegynder
05. december 2002 - 10:09 Der er 5 kommentarer og
3 løsninger

Dato i ASP & ACCESS

Jeg har lavet noget kode der indsætter dato i dette format i databasen (05-12-2002) Mit problem er nu at jeg gerne vil have udskrevet det som Torsdag d. 5. december

Som koden ser ud nu uskrives en overskrift med dato og en tekst, hvor tid er datofeltet. Ud over at datoen skal skrives som "Torsdag d. 5 december", vil jeg også gerne have så det kun er datoer efter den pågældende dato der vises.

Der skal altså ikke vises ældre datoer end den aktuelle, men alle fremtidige skal vises.

Det skal laves med ASP & Javascript

Håber i kan hjælpe

/simon


Her er koden som den ser ud lige nu
___________________________________

<table width="373" border="0" align="center">
        <%
    rs = conn.Execute("SELECT * FROM aarsplan WHERE vist>0 ORDER BY vist ASC");
    tid = rs.Fields("tid")
    while (!rs.EOF) {
%>
        <tr align="left" valign="top">
          <td width="73" align="left" class="Brodtekst"><%=tid%></td>
          <td width="300" class="overskriftudflugt"><%=rs.Fields("overskrift")%>
            <div align="left"></div></td>
        </tr>
        <%
        if (tid != "") {
        %>
        <tr align="left" valign="top">
          <td colspan="2" align="left" class="bundkant"><span class="almtekst"><%=rs.Fields("tekst")%><img src="../images/spacer.gif" width="1" height="1"></span></td>
        </tr>
        <%
        }
        %>
        <%
rs.MoveNext();
}
%>
      </table>
Avatar billede medions Nybegynder
05. december 2002 - 10:29 #1
lngTheDate = "05-12-2002"
    arrDays = Array("", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag")
    arrMonths = Array("Januar", "Febuar", "Marts", "April", "Maj", "Juni", "Juli","August", "September", "Oktober", "November", "December")
    lngWeekDay = WeekDay(lngTheDate)
    lngMonth = Month(lngTheDate)
    Response.Write(arrDays((lngWeekDay)-1) & " d. " & Day(lngTheDate) & " " & arrMonths(lngMonth-1))

//>Rune
Avatar billede eagleeye Praktikant
05. december 2002 - 11:18 #2
2.

Så skal du lave din SQL så den hendter datoer som er frem i tiden.. SQL skal havde dato formaet yyyy-mm-dd eller mm-dd-yyyy så din SQL kommer til at se sådan her ud.:


datoStr = Year(Date) & "-" & Month(Date) & "-" & Day(Date)

rs = conn.Execute("SELECT * FROM aarsplan WHERE tid >= #" & datoStr & "# AND vist>0 ORDER BY vist ASC");
Avatar billede eagleeye Praktikant
05. december 2002 - 11:19 #3
du skal vist flytte denne linie:

tid = rs.Fields("tid")


Ind foran denne if sætning for den samme dato ikke skrives ud for at poster i daabase.

if (tid != "") {
Avatar billede eyes Nybegynder
05. december 2002 - 11:20 #4
Vi har fået den til at vise efter sorteret dato nu, og det virker med at der ikke vises tidligere datoer. Men der er stadig et problem som er at den aktuelle dato ikke udskrives. Den udskriver altså fra imorgen den 6 december !

Hvordan løses dette

Her er koden

        <table width="373" border="0" align="center">
<%
var d = new Date()
day = d.getDate()
month = d.getMonth() +1
year = d.getYear()
if (month < 10) {
month = "0" + month
}
if (day < 10) {
day = "0" + day
}

rs = conn.Execute("SELECT * FROM aarsplan ORDER BY tid ASC");
tid = rs.Fields("tid")

while (!rs.EOF) {
var t = new Date(tid)
if (t >= d) {
%>
        <tr align="left" valign="top">
          <td width="73" align="left" class="Brodtekst"><%=tid%></td>
          <td width="300" class="overskriftudflugt"><%=rs.Fields("overskrift")%>
            <div align="left"></div></td>
        </tr>
        <%
        if (tid != "") {
        %>
        <tr align="left" valign="top">
          <td colspan="2" align="left" class="bundkant"><span class="almtekst"><%=rs.Fields("tekst")%><img src="../images/spacer.gif" width="1" height="1"></span></td>
        </tr>
        <%
        }
        %>
        <%
        }
rs.MoveNext();
}
%>
      </table>
Avatar billede medions Nybegynder
05. december 2002 - 11:22 #5
<%
var d = new Date()
day = d.getDate() -1
month = d.getMonth() +1
year = d.getYear()
if (month < 10) {
month = "0" + month
}
if (day < 10) {
day = "0" + day -1
}

Prøv med dette!

//>Rune
Avatar billede eagleeye Praktikant
05. december 2002 - 11:26 #6
Lav det som sikre at gamle datoer ikke bliver vist via SQL som jeg har vist, hvor den kun hendter de records som skal vises. Det er spilt af tid / resurser at hendte hele databasen og så loop gemmen flere 100/10000 record for at udskrive de 10/20 aktuelle...
Avatar billede eyes Nybegynder
05. december 2002 - 12:00 #7
Du kan ikke lave det i javascript istedet for VB ?
Avatar billede flytier Nybegynder
05. december 2002 - 13:12 #8
var dayArr = ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'];

var monthArr = ['Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December'];

var testDate = new Date(RS("MinDato").Value);
Response.write(dayArr[testDate.getDay()]+" d. "+testDate.getDate()+". "+monthArr[testDate.getMonth()]+" "+testDate.getYear())
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