Avatar billede henriktha Nybegynder
06. april 2005 - 01:10 Der er 7 kommentarer og
1 løsning

Noget er galt med Date ?

Når jeg laver denne:

<script language="javascript">
var Uptime = new Date(1995,03,06,1,9,0);
var UpTimemsek = Uptime.getTime();
var nu = new Date();

function UpTime() {
  var nu = new Date();
  msek =  nu.getTime() - UpTimemsek;
  var sek = Math.floor(msek/1000);
  var min = Math.floor(sek/60);   
  var tim = Math.floor(min/60);   
  var dg = Math.floor(tim/24);   
  var aar = Math.floor(dg/365.7);   
  sek = sek%60;    if (sek < 10) { sek = "0" + sek;}
  min = min%60;    if (min < 10) { min = "0" + min; }
  tim = tim%24;    if (tim < 10) { tim = "0" + tim; }
  dg = dg%365;

document.getElementById('dato').innerText = new Date(Uptime);
document.getElementById('server').innerText = "Så lang tid er det siden: ";
if (aar > 0) { document.getElementById('aar').innerText = aar + "";
  document.getElementById('aar_tekst').innerText = " År "; }
if (dg > 0) { document.getElementById('dage').innerText = dg + "";
  document.getElementById('dage_tekst').innerText = " Dage "; }
if (tim > 0) { document.getElementById('timer').innerText = tim;
  document.getElementById('timer_tekst').innerText = " Timer "; }
if (min > 0) {  document.getElementById('minutter').innerText = ""+ min +"";
  document.getElementById('minutter_tekst').innerText = " Minutter "; }
  document.getElementById('sekunder').innerText = ""+ sek +"";
  document.getElementById('sekunder_tekst').innerText = " Sekunder";

}   
</script>

<body onload="setInterval(UpTime,1000);">
<b>
<center><font id="server"></font>
<font color=#FF0000 id="aar"></font>
<font id="aar_tekst"></font>
<font color=#FF0000 id="dage"></font>
<font id="dage_tekst"></font>
<font color=#FF0000 id="timer"></font>
<font id="timer_tekst"></font>
<font color=#FF0000 id="minutter"></font>
<font id="minutter_tekst"></font>
<font color=#FF0000 id="sekunder"></font>
<font id="sekunder_tekst"></font>
</b><br><font id="dato"></font></center>

får jeg resultatet:

9 År 3 Dage 04 Minutter 27 Sekunder

Hvorfor er det lige at der er de 3 dage for meget, har jeg gjort noget galt ??

sætter jeg den feks til 1975 istedet for 1995 er det 8 dage galt ?
Avatar billede roenving Novice
06. april 2005 - 01:24 #1
Du har såmændt glemt skudårene !-)

-- du kunne også bruge mine Date-udvidelser, de kigger udenom den slags problemer: http://roenving.users.whitehat.dk/date/roenvingDate.html

-- prøv at indsætte 1995,3,6,1,9,0 i reference-feltet, så får du straks det rigtige under .age !o]

-- og generelt er det en dårlig ide at bruge nuller foran tal i javascript, da de, når de står alene, vil fortolkes som oktal-tal ...
Avatar billede henriktha Nybegynder
06. april 2005 - 01:36 #2
Jeg kan ik lige gennemskue din kode... hvordan laver jeg det i mit eget script ??
Avatar billede roenving Novice
06. april 2005 - 01:46 #3
Download .zip-filen, installer roenvingDate.js i samme mappe som din html-side, og indsæt f.eks. denne kode:

<script type="text/javascript" src="roenvingDate.js"></script>
<script type="text/javascript">
var Uptime = new Date(1995,3,6,1,9,0);
function updateTime(){
  document.getElementById('tidSiden').innerHTML = Uptime.age(0,0,6,1);
}
window.onload = function(){updateTime();setInterval('updateTime()',1000);}
</script>

Så længe er det siden: <span id="tidSiden"></span>
Avatar billede roenving Novice
06. april 2005 - 02:02 #4
-- og vil du skifte sprog, skal du bare starte sådan:

<script type="text/javascript" src="../Udvikling/roenvingDate.js"></script>
<script type="text/javascript" src="../Udvikling/roenvingDate_en.js"></script>
<script ...
Avatar billede henriktha Nybegynder
08. april 2005 - 10:59 #5
Syns bare det er meget kode at skulle bruge til så lidt.... vil hellere have en forklaring jeg kan bruge næste gang...
Avatar billede roenving Novice
08. april 2005 - 11:37 #6
Problemet med tids-afstande er, at du under alle omstændigheder skal lave en meget omhyggelig kode, for ikke at snuble over tidspunkter i løbet af måneden, forskellige månedslængder, konkret alder før og efter fødsels- eller årdag osv.

Hvis du kigger i min kode, vil du se, at jeg klarer den ved at teste een property ad gangen, og så evt. regulere den, jeg lige har testet, hvis den efterfølgende tilsiger det !-)
Avatar billede henriktha Nybegynder
06. juni 2005 - 18:06 #7
okay... smid et svar.... kom aldrig videre med dette projekt ;-)
Avatar billede roenving Novice
06. juni 2005 - 18:18 #8
Oki '-)
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