Avatar billede zlog Nybegynder
12. oktober 2006 - 21:55 Der er 6 kommentarer og
1 løsning

Nedtælling til tidspunkt hvert år

Hej,

jeg har set lidt på nogen tællere andre har fået hjælp til herinde - men de har alle den "svaghed" at de alle tæller ned til at specifikt tidspunkt...
Jeg vil gerne have en lign. tæller - helst i php - og den skal tælle ned til f.eks. 15. juli - den skal vise måneder, dage, timer, minutter og sekunder...
Måden den skiller sig lidt ud er at den IKKE skal tælle ned til et bestemt årstal - den skal bare tælle til den dato - når den rammer den, så skal den tælle til den igen - altså til næste år...

Håber nogen af Jer kan klare det ;o)
Avatar billede jaw Nybegynder
13. oktober 2006 - 00:01 #1
Muligvis det lige kan gøres en tand nemmere, det må jeg lige fintænke over, men ellers så tror jeg denne regner rigtigt:

$to = mktime(0, 0, 0, 7, 15, date("Y"));
if($to < time()) {
    $to = mktime(0, 0, 0, 7, 15, date("Y")+1);
}
$diff = $to - time();
$days = floor($diff / 86400);
$hours = floor(($diff - ($days * 86400)) / 3600);
$minutes = floor(($diff - ($days * 86400) - ($hours * 3600)) / 60);
$seconds = $diff - ($days * 86400) - ($hours * 3600) - ($minutes * 60);
echo "Der er ".$days." dage, ".$hours." timer, ".$minutes." minutter og ".$seconds." sekunder til det n&aelig;ste gang er d. 15. juli";

Dog er der det problem, at en måned jo ikke er ens, derfor er det svært at sige, hvor mange måneder der til en dag, hvis man bagefter også skal angive dage, timer, minutter og sekunder. Derfor angiver ovenstående ikke måneder. Ellers må du sige, om en måned er 30 dage - eller om du blot vil have som p.t. okt->jul = 8 eller 9 måneder, afhængig af om man regner oktober og juli med.
Avatar billede zlog Nybegynder
13. oktober 2006 - 09:49 #2
Altså umiddelbart må jeg sige at den ser meget fornuftig ud - jeg glemte bare at skrive en ting.. den skal helst opdatere i realtime.... er det noget du lige kan svinge eller det en større omgang?
Avatar billede jaw Nybegynder
13. oktober 2006 - 11:22 #3
Det kan ikke lade sig gøre. I hvert fald, så skal du have sat siden til at reloade hvert sekund, eller smide ovenstående i f.eks. en iFrame, der så refresher hvert sekund...
Avatar billede jaw Nybegynder
13. oktober 2006 - 12:48 #4
Man kan så også lave det i javascript, hvor det kan opdateres realtime. Selvom jeg ikke er verdens største javascript-haj, så har jeg bikset noget sammen, som faktisk ser ud til at virke:

<script type='text/javascript'>
        today = new Date();
        var now = today.getTime();
        BigDay = new Date("July 15, " + today.getYear());
        var to = BigDay.getTime();
        if(to < now) {
            BigDay = new Date("July 15, " + (today.getYear()+1));
            var to = BigDay.getTime();
        }
    function countDown() {
        now = now + 1000;
        var diff = to - now;
        var days = Math.floor(diff / 86400000);
        var hours = Math.floor((diff - (days * 86400000)) / 3600000);
        var minutes = Math.floor((diff - (days * 86400000) - (hours * 3600000)) / 60000);
        var seconds = Math.floor((diff - (days * 86400000) - (hours * 3600000) - (minutes * 60000))/1000);
       
        this.testfield.value = "Der er " + days + " dage, " + hours + " timer, " + minutes + " minuter og " + seconds + " sekunder til næste gang det er d. 15. juli.";
    }
    window.onload = function(){countDown();setInterval('countDown()',1000)}
</script>
   
<input style='width: 1000px;' type='text' name='testfield'>


-- men om syntaxen er 100% korrekt, det garanterer jeg ikke for !
Avatar billede zlog Nybegynder
13. oktober 2006 - 15:13 #5
JAW  -  det ser bare i orden ud.. hvis du gerne vil have points for det her - så lav lige et svar som jeg kan acceptere ;o)
Avatar billede jaw Nybegynder
13. oktober 2006 - 15:18 #6
Okey dokey :)
Avatar billede zlog Nybegynder
13. oktober 2006 - 16:32 #7
Ret skal være ret - og din løsning virker, det er det vigtigste for mig ;o)
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

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