Avatar billede PHPnQrd Nybegynder
25. november 2010 - 12:07 Der er 8 kommentarer og
1 løsning

Javascript countdown

Hvad går der lige galt i denne funktion? Den skal udskrive timerne og minutterne, men noget går helt galt.



function updateClock ( unix, id ) {
var target = unix;
var now = new Date();


var seconds_remaining = target - (now.getTime() / 1000).toFixed(0);

var hours_remaining = seconds_remaining/3600;
var minutes_remaining = (hours_remaining/60)%60;
alert(hours_remaining);
document.getElementById(id).innerHTML = hours_remaining + \' time(r), \'+minutes_remaining+\' min.\';

}





Kalder den så med

<?php $min = time()-3600; //En time tilbage ?>

updateClock(<?=$min;?>, 'id på div');

Men den tæller ikke ned .... der er noget i mit regnestykke der er forkert - kan nogen hjælpe
Avatar billede PHPnQrd Nybegynder
25. november 2010 - 12:08 #1
Altså, den udskriver ikke de rigtige timer og minutter..
Avatar billede PHPnQrd Nybegynder
25. november 2010 - 13:24 #2
Skal siges, at unix er unixtime i php :) (timestamp)
Avatar billede majbom Novice
25. november 2010 - 14:01 #3
du skal ikke escape dine quotes:

document.getElementById(id).innerHTML = hours_remaining + \' time(r), \'+minutes_remaining+\' min.\';


skal være:

document.getElementById(id).innerHTML = hours_remaining + ' time(r), ' + minutes_remaining + ' min.';
Avatar billede PHPnQrd Nybegynder
25. november 2010 - 14:55 #4
Jo, det fordi det køres i php, se bort fra det. Selve udregningen er stadig ukorrekt, det er dér problemet ligger.
Avatar billede heinzdmx Nybegynder
25. november 2010 - 15:37 #5
var hours_remaining = seconds_remaining/3600;

Du dividere dine sekunder med 3600 og får antal timer?
Tror der er en fejl der.
Avatar billede olsensweb.dk Ekspert
25. november 2010 - 15:51 #6
prøv at se på http://www.eksperten.dk/spm/924459 #4
demo http://olsensweb.dk/test/experten/spm/924459/

minutes = parseInt(  ((seconds / 60) % 60) );
sec = parseInt( (seconds % 60) );         
document.getElementById(outputid).innerHTML = minutes + ' min. ' + sec + ' sek';
Avatar billede olsensweb.dk Ekspert
25. november 2010 - 16:05 #7
days    = parseInt( sec/86400 );
hours  = parseInt( (sec/3600) % 24 );
minutes = parseInt( (sec / 60) % 60 );
seconds = parseInt( sec % 60 );
Avatar billede PHPnQrd Nybegynder
26. november 2010 - 11:27 #8
Tak for hjælpen ronols.Smid svar
Avatar billede olsensweb.dk Ekspert
26. november 2010 - 11:49 #9
det får du så her.
selve tidsberegningen som vist i #7 havde jeg taget fra 
http://www.eksperten.dk/spm/921748 #5
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