Autor Zpráva
Vasek2015
Profil
Nevím si rady. Jukněte na script a prosím řekněte co dělám špatně. v jediném firefoxu mi script nepracuje. a už jsem odhalil že to má co do činění s časem. že proměná "tomorow" má ve firefoxu NaN a tím pádem je moje podminka vždy nepravdivá. Mám chybu někde v zápisu ale nevím kde :(

stačí tenhle kus scriptu neboť tady je zakopaný pes
var Fringe=new Array;
Fringe={
    1: { 1: ["S04E01"],2: ["S04E02"],3: ["S04E03"],4: ["S04E04"] },
    2: {
        1: ["2011/06/16 17:00:00"],
        2: ["2011/07/09 15:30:00"],
        3: ["2011/07/19 13:07:00"],
        4: ["2011/07/19 18:57:00"]
       }
function Rozhodnuti(serial, xy) {                                
      var a_today=new Date();
      var today=a_today.getTime();
      var a_tomorow=new Date(serial[2][xy]);
      var tomorow=a_tomorow.getTime();}

a tady je zápis volání funkce
Rozhodnuti(Fringe,1);
Velda
Profil
Vasek2015:
jednak si tu pleteš pole a objekt a taky ti chybí složená ukončovací závorka za Fringe={....
Vasek2015
Profil
nechybí mi tam jen jsem ji tady do tohodle kusu zapoměl dopsat. Jak jako pletu pole a objekt? Prosím o vysvětlení nebot já jsem vážně v koncích. a po několikáte se mi to předělávat nechce když už to funguje v exploreru a chrome. jen ten firefox doladit
Velda
Profil
Vasek2015:
var Fringe=new Object;
Fringe={
    1: { 1: "S04E01",2: "S04E02",3: "S04E03",4: "S04E04"},
    2: {
        1: "2011/06/16 17:00:00",
        2: "2011/07/09 15:30:00",
        3: "2011/07/19 13:07:00",
        4: "2011/07/19 18:57:00"
       }}
function Rozhodnuti(serial, xy) {                                
      var a_today=new Date();
      var today=a_today.getTime();
      var a_tomorow=new Date(serial[2][xy]);
      var tomorow=a_tomorow.getTime();}

Toto je objekt, ne pole. A takto má vypadat zápis.
Vasek2015
Profil
ach tak. ale stejně to problém neřeší. tomorow je ve firefoxu stále NaN místo hodnoty v ms
Velda
Profil
Vasek2015:
Tím že definuješ proměnou uvnitř funkce varem ji děláš lokální - to znamená, že k ní má přístup jen daná funkce.
Nejspíš to bude tím ne?
function Rozhodnuti(serial, xy) {                                
      var a_today=new Date();
      var today=a_today.getTime();
      var a_tomorow=new Date(serial[2][xy]);
      return a_tomorow.getTime();}
Vasek2015
Profil
nn tim to nebude. chyba bude podle me v
var a_tomorow=new Date(serial[2][xy]);
jsem si ted nechal vypsat tuhle promenou a firefox zobrazuje "datum Invalid Date "
Velda
Profil
Vasek2015:
mě to funguje (a ano, v FF), kód z příspěvku #4
Vasek2015
Profil
mně ne ať dělám co dělám :( přepsal jsem schválně ten Array na Object a pro jistotu zkontroloval složené závorky a stále jen funkčnost v IE a chrome. Datum ve firefoxu stále nedefinovan
Velda
Profil
Vasek2015:
a ty nesmyslé [] si odstanil jako v kódu z #4??
Vasek2015
Profil
ehm, moje chyba že jsem si toho nevšiml. bylo to skutečně tím :) měls pravdu. by je taky někdo mohl odstranit tedy z definice. já to totiž opisoval tady z webu z javascriptu pole polí a tam jsou ty závorky. Díky moc a za tu trpělivost se mnou
Velda
Profil
Vasek2015:
ale to je OBJEKT, ne pole :)
Není zač
Witiko
Profil
Vasek2015:
Ty jsi nepoučitelný, nebo si jen nepročítáš témata, která založíš?

Zápis má vypadat následovně:
var Fringe=[
  ["S04E01","S04E02","S04E03","S04E04"],
  ["2011/07/18 17:00:00","2011/07/19 14:30:00","2011/07/20 17:00:00"]
];

function Rozhodnutí(seriál, index) {                                
    var today    = Date.now?Date.now():new Date().getTime(),
        tomorrow = new Date(seriál[1][index]).getTime();
};
Až na to, že toto pouze uloží dvě čísla do proměnných a ihned je zahodí - tzn. funkce nic nedělá.

Velda:
A takto má vypadat zápis
Jenom poopravím - ten první řádek var Fringe = new Object; je tam zcela zbytečně.
new Object je pouze pomalejším ekvivalentem k literálovému zápisu {}, stačí tedy napsat rovnou var Fringe = { ... };
peta
Profil
Shrnu shrtnute...
Prispevek #4 - uprava zavorek objektu
Prispevek #6 - doplneni return do funkce
Prispevek #13 - oprava anglickeho slova tomorrow + prepsani objektu na array + zbytecny new Object

<script>
//var Fringe=new Object; //#13
var Fringe={ //#13
    1: { 1: "S04E01",2: "S04E02",3: "S04E03",4: "S04E04"},
    2: {
        1: "2011/06/16 17:00:00",
        2: "2011/07/09 15:30:00",
        3: "2011/07/19 13:07:00",
        4: "2011/07/19 18:57:00"
       }}
function Rozhodnuti(serial, xy) 
{                                
      //var a_today=new Date(); //#14
      //var today=a_today.getTime(); //#14
      var a_tomorrow =new Date(serial[2][xy]); //#13
      var tomorrow =a_tomorrow.getTime(); //#13
      return tomorrow; //#6 a #13
}

//Rozhodnuti(Fringe,1); //#14
alert(Rozhodnuti(Fringe,1)); //#14
</script>


Zobrazi ve FF hlasku s textem: 1308236400000. Melo to zobrazit toto?

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