Avatar billede simonadrian Nybegynder
11. juni 2008 - 13:12 Der er 16 kommentarer og
1 løsning

Hvordan resetter jeg hitcount hver dag

Jeg har et lille hitcounter-script, der updater en xml-fil hver gang en asp-fil loades.
Men jeg vil gerne resette tallet til 0 hver dag. Også gerne hver uge. Ideelt ville det være hvis man kunne definere dagen baseret på tidszoner eller GMT + x antal timer.

Skåret indtil benet ser mit script sådan her ud:

If IsNumeric(hitsdagligt) Then
hitsdagligt = CInt(hitsdagligt)+1
Avatar billede w13 Novice
11. juni 2008 - 14:55 #1
Så bliver du jo nødt til at gemme nuværende dato i XML-filen også.
Avatar billede simonadrian Nybegynder
11. juni 2008 - 15:03 #2
Ja, det går nok også. Jeg forestiller mig dog at datoen opdaterer sig selv.
Avatar billede w13 Novice
11. juni 2008 - 15:06 #3
Hvad mener du med opdaterer sig selv?

Hvis du opdaterer datoen, hver gang du opdaterer hits, så kan du jo sammenligne XML-datoen med i dags dato. Hvis XML-datoen er i går, så skal hits nulstilles.
Avatar billede w13 Novice
11. juni 2008 - 15:12 #4
I øvrigt behøver du jo ikke bruge CInt(), når du har testet, at hitsdagligt er numerisk.
Avatar billede simonadrian Nybegynder
11. juni 2008 - 15:41 #5
Med automatisk mener jeg at jeg ikke selv skal ind og indskrive datoen i xml-filen for at asp-filen kan regne ud at en ny dato skal nulstille antallet af hits.

Kort sagt: Hver gang datoen skifter skal hitsdagligt nulstilles automatisk.
Avatar billede w13 Novice
11. juni 2008 - 15:44 #6
Ja, datoen skulle jo skrives ind af asp-koden ligesom hitsdagligt vel bliver?

Alternativt kunne du måske med asp aflæse "last modified"-datoen for XML-dokumentet.
Avatar billede simonadrian Nybegynder
11. juni 2008 - 16:00 #7
Ja, men hvordan får man asp til at konstatere at datoen i xml-filen ikke længere er den samme som i går og at den derfor skal resette hitsdagligt til 0.
Kunne det være noget i denne stil:

If Date() <> xmldate Then
hitsdagligt = 0
Avatar billede w13 Novice
11. juni 2008 - 16:03 #8
Ja, men jeg ville bare sige:

If Date() > xmldate Then

eller muligvis for at sikre, at xmldate er i datoformat (er den i string-format går det galt nemlig):

If Date() > CDate(xmldate) Then
Avatar billede simonadrian Nybegynder
11. juni 2008 - 16:31 #9
Hvorfor virker dette så ikke:
Her er min xml
<hits id="1" hitsdagligt="23" dagsdato="11-06-2008"/>

og her hitscriptet

Set objRoot = objXML.selectsingleNode("hits")
    If IsNumeric(objRoot.attributes(1).text) Then
      if Date() > CDate(objRoot.attributes(2).text) Then
        objRoot.attributes(1).text = 0
      Else
            objRoot.attributes(1).text = objRoot.attributes(1).text+1
      End If
    Else
      objRoot.attributes(1).text = 1
    End if
Avatar billede w13 Novice
11. juni 2008 - 16:33 #10
Måske bruger din server amerikansk datoformat? Prøv lige at udskrive:

Date()
og:
CDate(objRoot.attributes(2).text)
Avatar billede w13 Novice
11. juni 2008 - 16:34 #11
Og hvad er det, som ikke virker? Dvs. du fortæller ikke, hvad der går galt.
Avatar billede simonadrian Nybegynder
11. juni 2008 - 18:20 #12
CDate = 11/6/2008
Date = 6/11/2008

Jeg tror dog at det fungerer nu. Måske var der bare tale om et cache-problem.

Det kan også være fordi jeg har indføjet en opdatering af dagsdato under første else
objRoot.attributes(2).text = Date()

altså

If IsNumeric(objRoot.attributes(1).text) Then
      If Date() > CDate(objRoot.attributes(2).text) Then
        objRoot.attributes(1).text = 0
      Else
        objRoot.attributes(1).text = objRoot.attributes(1).text + 1
        objRoot.attributes(2).text = Date()
     
    End If
    Else
    objRoot.attributes(1).text = 1
    End if
Avatar billede w13 Novice
11. juni 2008 - 18:50 #13
Hvis Date returnerer 6/11/2008, så er det jo fejlen (amerikansk format).
Avatar billede simonadrian Nybegynder
11. juni 2008 - 20:20 #14
Hvad kan jeg gøre ved det.
Avatar billede w13 Novice
12. juni 2008 - 07:41 #15
Først kan du prøve at sætte dette øverst i din kode:
Session.LCID = 1030
Det burde slå dansk format til, men det fungerer ikke altid.
Avatar billede simonadrian Nybegynder
12. juni 2008 - 10:25 #16
Well, det lader til at fungere. Hvis jeg skriver en gammel dato går den ind og retter den til den korrekte. Og den opdaterer hver gang, jeg loader flash-filmen, så hvis du sender mig et svar sender jeg nogen point.
Avatar billede w13 Novice
12. juni 2008 - 10:25 #17
;)
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