Autor | Zpráva | ||
---|---|---|---|
jefitto44 Profil |
#1 · Zasláno: 31. 8. 2015, 18:20:46
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 * |
#2 · Zasláno: 31. 8. 2015, 18:28:09
|
||
jefitto44 Profil |
#3 · Zasláno: 31. 8. 2015, 18:31:02 · Upravil/a: jefitto44
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 * |
#4 · Zasláno: 31. 8. 2015, 18:37:35
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 |
#5 · Zasláno: 31. 8. 2015, 18:39:07 · Upravil/a: jefitto44
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 |
#6 · Zasláno: 31. 8. 2015, 19:51:38
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 |
#7 · Zasláno: 31. 8. 2015, 20:26:36
Č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 |
#8 · Zasláno: 31. 8. 2015, 21:53:26
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. |
||
Časová prodleva: 9 let
|
0