Avatar billede dragonbook Nybegynder
02. oktober 2004 - 14:03 Der er 9 kommentarer og
1 løsning

Tilføj månede ?

Jeg benytter et count up script der viser hvor mange år - dage - timer - min og sekunder det er siden en bestemt dato.

Jeg har forgæves forsøgt at tilføje måneder men kan ikke få det til at virke!

Jeg håber en af jer kan! Der skal jo tages hensyn til hvor mange dage der er i de forskellige måneder.

Scriptet regner tiden ud efter brugerens computer ur. Er det muligt at omskrive scriptet så det benytte en servers ur ved hjælp af PHP ?

Scriptet kommer her:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="javascript" type="text/javascript">
var sec = 00;
var minut = 30;
var hour = 22;
var day = 15;
var month = 7; // 0 = januar, 1 = februar,...,11 = december
var syear = 2004;
function count_up(){
    var today = new Date();
    var then = new Date(syear,month,day,hour,minut,sec);
    var msecToday = today.getTime();
    var msecThen = then.getTime();
    var diff = msecToday - msecThen;
  var daysDiff = Math.floor(diff/1000/60/60/24);
  diff = diff - daysDiff*1000*60*60*24
  var hoursDiff = Math.floor(diff/1000/60/60);
  diff = diff - hoursDiff*1000*60*60
  var minutesDiff = Math.floor(diff/1000/60);
  diff = diff - minutesDiff*1000*60
  var secDiff = Math.floor(diff/1000);
  var yearsDiff = 0;
    // hvis årstallet er før 2000, returnerer getYear() kun de sidste 2 cifre
    var year = (then.getYear() < 1000) ? then.getYear() + 1900 : then.getYear();
    while(year != today.getYear() && daysDiff >= daysInYear(year)){
        yearsDiff++;
        year++;
        daysDiff -= daysInYear(year);
    }
    var difference = yearsDiff + ' år ' +
        daysDiff + ' dage ' +
    hoursDiff + ' timer ' +
    minutesDiff + ' minutter ' +
    secDiff + ' sekunder';

    document.getElementById("diffField").innerHTML=difference;
    setTimeout('count_up()',1000);
}
function daysInYear(year){
    if( ( year % 4 == 0 && year % 100 != 0 ) || ( year % 400 == 0 ) )
        return 366;
    else
        return 365;
}
</script>
    <title>Tid siden</title>


</head>
<BODY onLoad="count_up()">

<div id="diffField"></div>

</body>
</html>
Avatar billede roenving Novice
02. oktober 2004 - 14:06 #1
Prøv at kigge på mine Date()-udvidelser:

http://roenving.users.whitehat.dk/date/roenvingDate.html
Avatar billede dragonbook Nybegynder
02. oktober 2004 - 18:22 #2
Ja jeg må indrømme jeg ikke helt kan få dit script til at virke!

Hvis jeg nu gerne vil have den til at tælle op hvad skal jeg så skrive?

Har bare prøvet:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="javascript" type="text/javascript" src="roenvingDate.js"></script>
</head>
<body>

<span id="actAge"></span>

</body>
</html>

men det er jo ikke nok. kan ikke helt finde ud af hjælpefilen heller.
Avatar billede roenving Novice
02. oktober 2004 - 18:28 #3
<script type="text/javascript">
var birth = new Date(2004,7,15,22,30,0);
function showAge(){
  document.getElementById('actAge').innerHTML = birth.age(0,0,6);
}
</script>

<body onload="showAge();setInterval('showAge()',1000)">
Avatar billede dragonbook Nybegynder
02. oktober 2004 - 20:17 #4
Nu virker det fint!

Men hvis tiden ikke er et år siden, står der ikke 0 år men bare år
dvs. der står:

år, 12 måneder, 5 dage, 7 timer, 8 minutter, 20 sekunder

istedet for

0 år, 12 måneder, 5 dage, 7 timer, 8 minutter, 20 sekunder
eller bedre endnu
12 måneder, 5 dage, 7 timer, 8 minutter, 20 sekunder

kan det laves ??
Avatar billede dragonbook Nybegynder
02. oktober 2004 - 20:20 #5
min fejl det står der jo også !!!

Men er det muliget af fjerne "," mellem år måneder osv. ?
Avatar billede roenving Novice
03. oktober 2004 - 03:08 #6
Alt er muligt, men jeg har jo netop lavet et generelt script ...

-- hvis du vil have det specifikt er det jo bare et andet script !-)
Avatar billede dragonbook Nybegynder
03. oktober 2004 - 10:53 #7
Ok smid lige et svar, så er der point!
Avatar billede roenving Novice
04. oktober 2004 - 00:53 #8
Velbekomme '-)
Avatar billede roenving Novice
04. oktober 2004 - 03:11 #9
-- og det er jo så bare at ændre på den tekst, som kommer (selvom det, som jeg skrev tidligere principielt ville være nemmere med et andet script !-)

function showAge(){
  document.getElementById('actAge').innerHTML = birth.age(0,0,6).replace(/,/g,"");
}
</script>
Avatar billede roenving Novice
09. oktober 2004 - 22:27 #10
-- og tak for point ;~}
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