Autor Zpráva
jefitto44
Profil
Robím nejaký countDown script a potrebujem vyriešiť ako prvé:

Ako input mi príde string vo formáte YYYY-MM-DD HH:ii:ss (čiže napr. 2015-09-01 12:00:00), potrebujem ho nejako rozparsovať, porovnať, či daný dátum ešte náhodou neprebehol (čiže porovnať s aktuálnym časom a dátum a zistiť, či je väčší, alebo menší).

Takže ako prvé skúšam dostať aktuálny dátum a čas, ale nefunguje mi to. Skúšal som

var now = new Date($.now());
aj toto
Date.now()

ale nebaví...

Existuje iný (lepší) spôsob, ako overiť, či daný dátumočas ešte len bude, alebo či už bol?
anonymníí
Profil *
jefitto44:
Začni studiem, alespoň zjistit dnešní datum je triviální.

Objekt Date
jefitto44
Profil
Hádže mi tento error neustále, nech skúšam čo skúšam

Uncaught ReferenceError: teraz is not defined
at <anonymous>:2:1
at Object.InjectedScript._evaluateOn (<anonymous>:905:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:838:34)
at Object.InjectedScript.evaluate (<anonymous>:694:21)

Tu je celý "kód" čo zatiaľ mám... ešte len začiatok a už je to v ...

/*countdown.js*/
$(document).ready(function() {
    /*Initialisation*/
    var dateTime = $("#dateTime").attr("data");
    
});

/*function parseDateTime(datetime) {

}*/



A btw, viac by mi vyhovovalo dostať ho cez jquery ako raw js...
anonymníí
Profil *
jefitto44:
V uvedených 3 řádcích, pokud pominu prázdné a zakomentované, chyba není. Tedy za předpokladu, že je někde předtím nalinkované jQuery a existuje element s id=dateTime a atributem data.
jefitto44
Profil
No tento script sa volá z <head> a celé dom ide až po tomto scripte... myslel som ale, že $(document).ready() to vyrieši... :O

Teraz sa stala vec.
Použil som
 now = new Date($.now()); 

vymazal som zpred tej premennej "var" a všetko zázračne ide...


Čiže momentálne takto

/*countdown.js*/
$(document).ready(function() {
    /*Initialisation*/
    var dateTime = $("#dateTime").attr("data");
    now = new Date();
});

/*function parseDateTime(datetime) {

}*/

to funguje... lenže vráti mi to
Mon Aug 31 2015 18:40:06 GMT+0200 (Stredoeurópsky čas (letný))

Je nejaká finta ako si to naformatujem na YYYY-MM-DD HH:ii:ss ? Na stackoverflow kukam len samú mágiu na 20 a viac riadkov
Joker
Profil
jefitto44:
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
V části Polyfill je vidět, jak seskládat zformátované datum a čas.
jefitto44
Profil
Čiže musím to takto čarovať... neexistuje jednoduchá funkcia, kde by som iba dal format ako v PHP?

Ale aj tak to bude lepšie asi urobiť cez timestampy a potom to vydeliť... nie?
Joker
Profil
jefitto44:
Čarovat? Vždyť to je vcelku triviální složení řetězce.

Ani to nebude 20 řádků, ta část podstatná pro tenhle případ je 14 řádků, navíc ta funkce pad se dá napsat méně ukecaně:
function pad(number) {
      return (number < 10) ? ('0' + number) : number;
    }

…a pak celý ten „čarovný“ kód jsou dvě funkce, každá o jednom příkazu.

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: