Autor Zpráva
RadimR
Profil *
Zdravím,

Ve formuláři používám funkci onmouseover, pomocí které vkládám do formulářového pole aktuální čas.
Potřeboval bych aby se mi tam vkládal čas v UTC. Toho docílím pomocí:

<a href="#" onmouseover="document.forms.form.Time.value = (new Date).toUTCString()"> - Aktualni cas</a></td>

Tento výpis mi ale zobrazí datum i čas: Mon, 28 Sep 2009 22:01:43 GMT

Potřeboval bych to zformátovat tak aby se do pole formuláře vlkádala jen hodina a minuta.


Děkuji
ah01
Profil
RadimR
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date - hledej getUTCxxx
RadimR
Profil *
jsou to následující proměnné?

var hrs;
Today = new Date();
hrs = Today.getUTCHours();

var min;
Today = new Date();
min = Today.getUTCMinutes();
RadimR
Profil *
nějak špatně to píšu. Nedaří se :-(
_es
Profil
RadimR:
var t = new Date, s = ((t.getUTCHours()+9900) + ":" + (t.getUTCMinutes()+9900)).replace(/99/g,"");

A v premennej s máš aktuálny čas v tvare hh:mm
RadimR
Profil *
Bez proměnné a při funkci onclick by to mohlo vypadat v html takto??? Nejspíš ale mám chybu u závorek asi.

<a href="#" onclick="document.forms.form.Date.value = (new Date, s = ((t.getUTCHours()+9900) + ":" + (t.getUTCMinutes()+9900)).replace(/99/g,""));> - Aktualní čas</a></td></tr>
_es
Profil
<a href="#" onclick='var t = new Date; document.forms.form.Date.value = ((t.getUTCHours()+9900) + ":" + (t.getUTCMinutes()+9900)).replace(/99/g,"");'>
RadimR
Profil *
A při variantě s UTC datumem bude situace podobná. Jen použiji get UTCDate, getUTCMonth a getUTCFullYear??

<a href="#" onclick='var t = new Date; document.forms.form.Datum.value = (((t.getUTCDate()+31) + "." + (t.getUTCMonth(+12)+t.getUTCDFullYear))).replace(/99/g,"");'>


Dobře to rozhodně není, jen se to snažím nějak poskládat....
_es
Profil
RadimR:
Tá finta s tým prirátaním 9900 a potom odstránením 99 z textu je len na zobrazenie jednociferného čísla v dvojcifernom tvare. Napríklad: 08:01.
Na dátum budeš musieť použiť niečo iné, podľa toho aký chceš formát.
Nie je dobré celý kód strkať do atribútu onclick. Radšej si aspoň hlavnú časť presuň do skriptu.
A skús troch viac uvažovať nad tým, čo vlastne do kódu dávaš.
RadimR
Profil *
O datum UTC se snažím tímto způsobem:

<a href="#" onclick='var t = new Date; document.forms.form.Date.value = ((t.getUTCDate()) + "." + (t.getUTCMonth())) + "." + (t.getUTCFullYear())))'>


při variantě pouze den.měsíc to vypisuje, ale s rokem už ne. Měsíc UTC mi v tomto případě ale vypisuje 8???
_es
Profil
RadimR:
Nejako ti nepasujú zátvorky.

Měsíc UTC mi v tomto případě ale vypisuje 8
V tej dokumentácii, čo ti dal odkaz ah01 sa dočítaš prečo.
RadimR
Profil *
OK, závorky již sedí. jj 0-11. takže když pripočtu +1 tak by to mělo sedět? Ještě se pustím do toho připočtení a odečtení čísla aby mi to ukazovalo u dní a měsíců dvouciferné hodnoty.
RadimR
Profil *
<a href="#" onclick='var t = new Date; document.forms.form.Date.value = (((t.getUTCDate()+9900) + "." + (t.getUTCMonth()+9901)) + "." + (t.getUTCFullYear())).replace(/99/g,"");'>


Mohlo by to už být???

Jinak děkuji všem za spolupáci.
_es
Profil
RadimR:
Ještě se pustím do toho připočtení a odečtení čísla

Jednoduchšie bude zadefinovať si na to funkciu:
function dveC(x){return String(x<10 ? "0" + x : x);}


Tá finta s tým pripočítaním 9900 nevyzerá pekne a teoreticky sa v roku môžu vyskytnúť dve deviatky za sebou a vtedy by bol výsledok zlý.
RadimR
Profil *
<a href="#" onclick='var t = new Date; document.forms.form.Date.value = (((t.getUTCDate()) + "." + (t.getUTCMonth())) + "." + (t.getUTCFullYear())).function dveC(x){return String(x<9 ? "0" + x : x);}"");'>

A tuto funkci do data přiřadím nakonec?? Nějak takhle?
_es
Profil
Nie, tú funkciu si dáš na začiatok, napríklad najjednoduchšie niekde pred tými odkazmi vložíš do súboru:
<SCRIPT>function dveC(x){return String(x<10 ? "0" + x : x);}</SCRIPT>
a potom ju môžeš neskôr využiť, napríklad:
<a href="#" onclick='var t = new Date; document.forms.form.Date.value = dveC(t.getUTCHours()) + ":" + dveC(t.getUTCMinutes());'>

Opravené, viď nižšie. (Chamurappi)
Chamurappi
Profil
Reaguji na _es:
String(x<9 ? "0" + x : x)
Spíš x<10, nebo x<=9.

Finta s přičtením 9900 je pěkná.
_es
Profil
Chamurappi:
Finta s přičtením 9900 je pěkná.

Ešte ma napadla podobná:
var t = new Date, s = (t.getUTCHours()*.1 + ":" + t.getUTCMinutes()*.1).replace(/\./g,"");
RadimR
Profil *
no a v datumu mi to teoreticky již nehrozí, když počítám den a měsíc???
RadimR
Profil *
resp, kombinací jedné metody na datumu a druhé na měsíci je to vyloučeno
_es
Profil
RadimR:
Ak má byť pre číslo 1 použitý formát 01, tak použi tú funkciu dveC. Bude jasné, čo tá funkcia robí, aj pri neskoršom pohľade do kódu.
Chamurappi
Profil
Reaguji na _es:
Ešte ma napadla podobná:
Ta ovšem nedoplní nulu k nule. O půlnoci tedy bude v řetězci „0:0“.
_es
Profil
Chamurappi
Ta ovšem nedoplní nulu k nule.
Na to som nemyslel, tam je naozaj nedostatok.
Dá sa však len pomocou regulárneho výrazu a metódy replace dosiahnuť správne formátovanie?
Dalo by sa to vyriešiť vkladaním nejakého ohraničenia pri zostavovaní reťazca a potom jeho odstránením, obdobne ako pri pripočítaní 9900, no šlo by to aj bez toho?
Teda slovným opisom:
Nahradiť v reťazci všetky čísla v tvare:
začiatok číslica koniec
kde začiatok a koniec sú "nečísla" znaky alebo začiatok a koniec reťazca za:
začiatok 0 číslica koniec

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