Avatar billede jannikf Nybegynder
13. juni 2005 - 18:44 Der er 4 kommentarer og
1 løsning

ASP tidstæller

Da jeg om nogle få dage skal sætte et forsøg i gang, kunne jeg godt tænke mig at have en counter der konstant står og tæller hvor mange måneder, dage, minutter og sekunder der er gået siden tidspunktet hvor forsøget er sat i gang.

Hvordan skal dette løses når måneder, dage, minutter og sekunder alle skal kunne virke uanset hvor lang tid der er gået.

Eks: Når nu der står 30 dage og den så skifter til 0 dage og 1 måned og begynder forfra med dagene og ligeså med timer samt minutter? Jeg kan gætte mig til at det er meget svært, men mindre kan nok også gøre det, for mindre point naturligvis.

Mvh Jannik
Avatar billede Spotgun Seniormester
13. juni 2005 - 18:56 #1
Hvis der skal køre på din egen computer/server, så kan du prøve at installere komponenten AspTime. Jeg har brugt den i lignende scenarier før...

http://www.15seconds.com/component/pg000210.htm
Avatar billede jannikf Nybegynder
13. juni 2005 - 19:11 #2
Det skal bruges på en hjemmeside. Så egentligt er jeg bare ude efter noget kode som tæller hvor langt tid der er gået fra en hvilken som helst dato.
Avatar billede tofte Juniormester
15. juni 2005 - 17:07 #3
Er det noget ala :
http://www.tau-web.de/diverses/vschoech/countdown.html

du søger, den er godt nok gået i negativ da datoen er passeret?
Avatar billede jannikf Nybegynder
18. juni 2005 - 02:16 #4
Præcis, den skal så bare være lige omvendt altså tælle opad fra en bestemt dato.
Avatar billede jannikf Nybegynder
19. juni 2005 - 03:09 #5
Fandt selv en løsning på ved dette link:
http://www.geocities.com/SiliconValley/7116/jv_cntu2.html

Dette indsætter jeg blot i et nyt indlæg, samtidigt med at jeg naturligvis retter i datoen:


<BODY onLoad="startclock()">
<SCRIPT language=JavaScript>

<!--

/*
*
*    "Count-Up (Form)"
*
*
*    Created by Glub, Un-Inc. [06-02-97]
*
*    Copyright (C) 1996-97  Glub, Un-Inc.  All Rights Reserved.
*    Feel free to reuse or modify this code,
*    provided this header remains in tact.
*    [http://www.glub.com/] [http://www.dotdotcom.com/]
*
*/



/* Initializations */
var timerID;
var timerRunning = false;
var today = new Date();
var startday = new Date();
var secPerDay = 0;
var minPerDay = 0;
var hourPerDay = 0;
var secsLeft = 0;
var secsRound = 0;
var secsRemain = 0;
var minLeft = 0;
var minRound = 0;
var minRemain = 0;
var timeRemain = 0;

/* This function will stop the clock */
function stopclock()
{
    if(timerRunning)
        clearTimeout(timerID);

    timerRunning = false;
}

/* This function will start the clock */
function startclock()
{
    stopclock();
    showtime1();
}

/* This function will display the count-up */
function showtime1()
{
    startday = new Date("June 20, 2005 12:00 EDT");
    startday.setYear("2005");
    today = new Date();
    secsPerDay = 1000 ;
    minPerDay = 60 * 1000 ;
    hoursPerDay = 60 * 60 * 1000;
    PerDay = 24 * 60 * 60 * 1000;

    /* Seconds */
    secsLeft = (today.getTime() - startday.getTime()) / minPerDay;
    secsRound = Math.round(secsLeft);
    secsRemain = secsLeft - secsRound;
    secsRemain = (secsRemain < 0) ? secsRemain = 60 - ((secsRound - secsLeft) * 60) : secsRemain = (secsLeft - secsRound) * 60;
    secsRemain = Math.round(secsRemain);

    /* Minutes */
    minLeft = ((today.getTime() - startday.getTime()) / hoursPerDay);
    minRound = Math.round(minLeft);
    minRemain = minLeft - minRound;
    minRemain = (minRemain < 0) ? minRemain = 60 - ((minRound - minLeft) * 60) : minRemain = ((minLeft - minRound) * 60);
    minRemain = Math.round(minRemain - 0.495);

    /* Hours */
    hoursLeft = ((today.getTime() - startday.getTime()) / PerDay);
    hoursRound = Math.round(hoursLeft);
    hoursRemain = hoursLeft - hoursRound;
    hoursRemain = (hoursRemain < 0) ? hoursRemain = 24 - ((hoursRound - hoursLeft) * 24)  : hoursRemain = ((hoursLeft - hoursRound) * 24);
    hoursRemain = Math.round(hoursRemain - 0.5);

    /* Days */
    daysLeft = ((today.getTime() - startday.getTime()) / PerDay);
    daysLeft = (daysLeft - 0.5);
    daysRound = Math.round(daysLeft);
    daysRemain = daysRound;

    /* Time */
    if (daysRemain == 1)
    {
        day_rem = " day, "
    }
    else
    {
          day_rem = " days, "
    }

    if (hoursRemain == 1)
    {
        hour_rem = " hour, "
    }
    else
    {
        hour_rem = " hours, "
    }

    if (minRemain == 1)
    {
        min_rem = " minute, "
    }
    else
    {
        min_rem = " minutes, "
    }

    if (secsRemain == 1)
    {
        sec_rem = " second"
    }
    else
    {
        sec_rem = " seconds"
    }

    timeRemain = daysRemain + day_rem + hoursRemain + hour_rem + minRemain +
    min_rem + secsRemain + sec_rem;
    document.up.face.value = timeRemain;
    timerID = setTimeout("showtime1()",1000);
    timerRunning = true;
}

//-->
</SCRIPT>

<FORM NAME="up">
<INPUT TYPE="text" NAME="face" SIZE="47" VALUE="A browser supporting JavaScript 1.1+ is needed.">
</FORM>

Jeg fik dog måneder med, men det overlever jeg nok. Siger 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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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