Avatar billede elskermad.dk Nybegynder
31. december 2003 - 13:40 Der er 23 kommentarer og
1 løsning

avanceret countdown - fra given dato til given dato

hej eksperter :]

jeg står og mangler en countdown function som kan tælle antal dage, timer, minutter og sekunder fra en given dato, til en given dato...

dvs jeg fx skal bruge fra: 11/12 2003 -> 4/3 2004
der skal den så vide hvormange dage, timer, min og sekunder!

håber der er nogen der ved hvordan den kan laves..

på forhånd tak!
Avatar billede thesurfer Nybegynder
31. december 2003 - 13:58 #1
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:03 #2
lige et tillægsspørgsmål. hvad hedder eventen når der bliver ændret i en normal textbox.. den hedder ikke onChange?
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:04 #3
argh... den ser godt nok noget avanceret ud, og os når der er tekst imellem.. kan du hive det rigtige ud for mig og sige hvor jeg skal ændre? har ikke rigtig forstand på javascript :(
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:05 #4
<html>
<head>
<title> Nedtaelling til foedselsdag </title>
<script language="JavaScript">
<!--
//COUNTDOWN SCRIPT
//Check and set browser and version
browserName = navigator.appName;
browserVersion = parseInt(navigator.appVersion);
if (browserName == "Netscape" && browserVersion >= 3) ver = "n3";
else
if (browserName == "Microsoft Internet Explorer" && browserVersion >= 4) ver = "e4";
else
if (browserName == "Microsoft Internet Explorer" && browserVersion == 2) ver = "e3";
else
ver = "n2";

//sets the clock to reflect the time from the PC viewing this page
if (ver == "n3" || ver == "e4")
var timerID;
var timerRunning = false;
var now = new Date();
var lastday = 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;
var decremain = 0;
var decround = 0;

function stopclock (){
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}

function startclock () {
stopclock();
showtime();
}

function showtime () {
now = new Date();
lastday = new Date("July, 14 2032 00:00");

lastday.setYear("2032");
secsPerDay = 1000 ;
minPerDay = 60 * 1000 ;
hoursPerDay = 60 * 60 * 1000;
PerDay = 24 * 60 * 60 * 1000;

/*Seconds*/
secsLeft = (lastday.getTime() - now.getTime()) / minPerDay;
decremain = (lastday.getTime() - now.getTime()) / secsPerDay;
decround = Math.round(decremain);
decremain = decround + " seconds";
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 = ((lastday.getTime() - now.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 = ((lastday.getTime() - now.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 = ((lastday.getTime() - now.getTime()) / PerDay);

aysLeft = (daysLeft - 0.5);
daysRound = Math.round(daysLeft);
daysRemain = daysRound;

/*Time*/
timeRemain = daysRemain + " dage, " + hoursRemain + " timer, " + minRemain + " minutter, " + secsRemain + " sekunder ";

document.getElementById("nedtaelling").innerHTML = timeRemain;

timerID = setTimeout("showtime()",1000);
timerRunning = true;
if (daysRemain < 0) {
clearTimeout(timerID);
timerRunning = false;
document.clock.face.value = "Tillykke!";
}
}
// end hiding script from browsers that do not support it
// -->
</script>
</head>

<body bgcolor="WHITE" onload="startclock ()">

Nedtælling: <span id="nedtaelling"></span>

</body>
</html>
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:07 #5
Jo, onChange rigtigt nok.. men det er nok bedre at bruge onKeyPress, onKeyDown eller onKeyUp.
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:16 #6
okay hvor skal jeg ændre i scriptet for at få det til at virke?
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:20 #7
Øh.. jeg kan jo ikke se noget af din kode?
Paste lige noget kode først.. så kigger vi på det..

Men ellers skal du bare erstatte onChange med en af de andre..
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:25 #8
nej mente det countdown script ;D det andet har jeg fundet ud af :)
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:27 #9
Hehe.. OK :)

Du placerer bare <span id="nedtaelling"></span> der, hvor du vil ha' nedtællingen skal være.
du kan også erstatte "span" med "div", hvis det skulle være..
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:28 #10
det skal sættes sammen med nogle php-variabler:

$fra[mday]    // startdato
$fra[month]  // startmåned (skrevet i engelsk format, fx July, kan også laves til tal ved at bruge $fra[mon])
$fra[year]    // startår
$fra[hours]  // starttime
$fra[minutes] // startminut

$til[mday]    // slutdato
$til[month]  // slutmåned (skrevet i engelsk format, fx July, kan også laves til tal ved at bruge $til[mon]))
$til[year]    // slutår
$til[hours]  // sluttime
$til[minutes] // slutmin

start og slut kan også laves til unix timestamp!
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:29 #11
jamen jeg skal jo gerne selv kunne bestemme hvilke tider den skal tælle fra/til
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:31 #12
Det skal du rette til her:
lastday = new Date("July, 14 2032 00:00");
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:32 #13
mht Unix timestamp.. jeg ved ikke lige hvordan den ser ud, men du retter strengen her:
timeRemain = daysRemain + " dage, " + hoursRemain + " timer, " + minRemain + " minutter, " + secsRemain + " sekunder ";
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:32 #14
så kan jeg kun bestemme sidste dag? jeg skal også gerne kunne bestemme hvornår den starter!
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:33 #15
det skal være til en auktion hvor den skal fortælle hvor lang tid der er tilbage
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:36 #16
"hvornår den starter":
Så skal JavaScript koden først indsættes når du skal bruge den! :)
Du bruger jo php.. check datoen, hvis den er iorden, indsættes JS-koden.

Jeg synes ikke rigtigt, at alle disse nye spm indgår i dit spm.. :)
Kommer der flere? :)
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 14:47 #17
fra mit spm:
dvs jeg fx skal bruge fra: 11/12 2003 -> 4/3 2004

har hele tiden skulle bruge at have fra en dato til en anden.... kan det ikke lade sig gøre?
Avatar billede thesurfer Nybegynder
31. december 2003 - 14:54 #18
Fra mit sidte indlæg:
"hvornår den starter":
Så skal JavaScript koden først indsættes når du skal bruge den! :)
Du bruger jo php.. check datoen, hvis den er iorden, indsættes JS-koden.

Du må ha' en eller anden form for database, til at holde styr auktionerne.
Når brugeren kommer ind på siden, checker du dagens dato. Hvis dagens dato er mellem 11/12/2000 og 4/3/2004, indsættes JS-koden, og nedtællingen kører.

lastday skal så være:
lastday = new Date("March, 4 2004 00:00");

"00:00" skal så lige rettes til det rette tidspunkt (det har du ikke oplyst).
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 15:12 #19
nårh jah... det har du ret! det virker nu :D

www.myserver.lir.dk/projekt/auktion/?aukid=1
Avatar billede thesurfer Nybegynder
31. december 2003 - 15:19 #20
Takker for points :)
Men.. se lige din side.. på selve siden, dvs det man kan se i browseren.. der står:

function tjekbud(type,f) { if (type == 'tjek') { if (f.bud.value.length>5) { alert('Så meget er den vist heller ikke værd!'); f.bud.value='999999'; return false } } else { } }

Auktionsgenstand
Håndklæde
dejligt håndklæde der bare dur :D


Jeg tror at du har afsluttet med </script> lidt for tidligt :)
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 15:22 #21
hehe ellers godt ramt... var en fejl der måske var på siden i 15 sek inden jeg fik rettet :D
Avatar billede thesurfer Nybegynder
31. december 2003 - 15:23 #22
hehe.. godt nytår! :)
Avatar billede thesurfer Nybegynder
31. december 2003 - 15:24 #23
hmm.. synes du at det er en god ide, at skrive hvem der har budt hvad?
Er det ikke en privat/personlig ting?
Avatar billede elskermad.dk Nybegynder
31. december 2003 - 15:27 #24
jov det kunne godt ske at det er det, men selv på store sites som qxl er der de oplysninger, og dette jeg er ved at lave er beregnet til en lukket brugergruppe, men ska der liges findes ud af.. tak for info! :D

du må os ha et godt nytår :] jeg siger mange 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
Vi tilbyder markedets bedste kurser inden for webudvikling

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