Autor Zpráva
Actimel
Profil
zdravím můžete mi někdo poradit, proč tento kod na vypsání data a času nefunguje ?
v cas.js je toto:

function bimbam () {
var cas = new Date();
var hodiny = cas.getHours();
var minuty = cas.getMinutes();
var sekundy = cas.getSeconds();
var den = cas.getDate();
var mesic = cas.getMonth() + 1;
var rok = getFullYear();
if (hodiny <10){
hodiny = "0" + hodiny
};
if (sekundy <10){
sekundy = "0" + sekundy
};
if (minuty < 10){
minuty = "0" + minuty
};
if (den <10){
den = "0" + den
};
if (mesic <10){
mesic = "0" + mesic
};
aktualniCas = den +". "+ mesic +". "+ rok +"  "+ hodiny +":"+ minuty +":"+ sekundy;
window.document.getElementById("cas").innerHTML = aktualniCas;
document.getElementById("cas").innerHTML;
window.setTimeout("bimbam()",1000);
}
bimbam ()


a v index.html toto:

<script src="/cas.js" type="text/javascript"></script><span id="cas"></span>


Předem díky za radu. :)
Witiko
Profil
cas.js
Před řádek 1 připsat: var element = document.getElementById("cas"); window.setInterval(bimbam, 1000);
Řádek 8 přepsat na: var rok = cas.getFullYear();
Řádek 24 přepsat na: element.innerHTML = den +". "+ mesic +". "+ rok +" "+ hodiny +":"+ minuty +":"+ sekundy;
Řádek 25, 26, 27 a 29: Vymazat.

index.html
Řádek 1 přepsat na: <span id="cas"></span><script src="./cas.js" type="text/javascript"></script>

Návrhy:
Definici proměnných pomocí var pro přehlednost oddělit čárkami: var a; var b; var c; --> var a, b, c; (Řádky 2 - 8)
Deklarovat privátní proměnné tak, aby nám nevytékaly z kontextu. (Původní řádek 24)
Předávat funkcím setTimeout/Interval funkci ve vhodném tvaru. (Původní řádek 29)
Doplnit dokument o tělo, hlavičku, doctype a podobné nedůležitosti.
Dát řídící funkci nějaké sebe-dokumentující jméno.
Actimel
Profil
teď mám v cas.js toto:
var cas = document.getElementById("cas");
window.setInterval(bimbam, 1000); 
function bimbam () {
var cas = new Date();
var hodiny = cas.getHours();
var minuty = cas.getMinutes();
var sekundy = cas.getSeconds();
var den = cas.getDate();
var mesic = cas.getMonth() + 1;
var rok = getFullYear();
if (hodiny <10){
hodiny = "0" + hodiny
};
if (sekundy <10){
sekundy = "0" + sekundy
};
if (minuty < 10){
minuty = "0" + minuty
};
if (den <10){
den = "0" + den
};
if (mesic <10){
mesic = "0" + mesic
};
cas.innerHTML = den +". "+ mesic +". "+ rok +" "+ hodiny +":"+ minuty +":"+ sekundy; 
}


a index.html toto
<span id="./cas"></span><script src="cas.js" type="text/javascript"></script>


a stejně to nejde.. ten kod co jsem posílal jako první mi dříve šel, dokud jsem k tomu nepřidělal datum (byly pouze hodiny)
Witiko
Profil
1ní, 10tý a 26tý řádek máš špatně. Globální proměnná cas koliduje s privátní a funkci getFullYear voláš na objektu window, ne cas.

var element = document.getElementById("cas");
window.setInterval(vypišČas, 1000); 

function vypišČas() {
  var cas = new Date(),
      hodiny = cas.getHours(),
      minuty = cas.getMinutes(),
      sekundy = cas.getSeconds(),
      den = cas.getDate(),
      mesic = cas.getMonth() + 1,
      rok = cas.getFullYear();
       
  if(hodiny < 10){
    hodiny = "0" + hodiny;
  }
  
  if(sekundy < 10){
    sekundy = "0" + sekundy;
  }
  
  if(minuty < 10){
    minuty = "0" + minuty;
  }
  
  if(den < 10){
    den = "0" + den;
  }
  
  if(mesic < 10){
    mesic = "0" + mesic;
  }
  
  element.innerHTML = den +". "+ mesic +". "+ rok +" "+ hodiny +":"+ minuty +":"+ sekundy; 
}
Actimel
Profil
no.. vložil jsem tento kod do cas.js a stejně to nefunguje.. :/ je to nějáký divný..
Witiko
Profil
Jo, špatně jsem ti napsal ten html soubor, máš mě taky opravit, ne jen suše kopírovat... :)

<span id="cas"></span><script src="./cas.js" type="text/javascript"></script>
Actimel
Profil
toho jsem si vubec nevšiml.... díky za pomoc už vše šlape jako hodinky :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0