| Autor | Zpráva | ||
|---|---|---|---|
| RadimR Profil * |
#1 · Zasláno: 29. 9. 2009, 00:04:31
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 |
#2 · Zasláno: 29. 9. 2009, 00:12:15
RadimR
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date - hledej getUTCxxx |
||
| RadimR Profil * |
#3 · Zasláno: 29. 9. 2009, 00:50:52
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 * |
#4 · Zasláno: 30. 9. 2009, 12:31:15
nějak špatně to píšu. Nedaří se :-(
|
||
| _es Profil |
#5 · Zasláno: 30. 9. 2009, 13:11:15 · Upravil/a: _es
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 * |
#6 · Zasláno: 30. 9. 2009, 19:36:46
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 |
#7 · Zasláno: 30. 9. 2009, 20:16:25
<a href="#" onclick='var t = new Date; document.forms.form.Date.value = ((t.getUTCHours()+9900) + ":" + (t.getUTCMinutes()+9900)).replace(/99/g,"");'> |
||
| RadimR Profil * |
#8 · Zasláno: 30. 9. 2009, 20:48:22
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 |
#9 · Zasláno: 30. 9. 2009, 20:59:03
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 * |
#10 · Zasláno: 30. 9. 2009, 21:40:07
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 |
#11 · Zasláno: 30. 9. 2009, 21:47:37 · Upravil/a: _es
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 * |
#12 · Zasláno: 30. 9. 2009, 21:55:28
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 * |
#13 · Zasláno: 30. 9. 2009, 21:58:14
<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 |
#14 · Zasláno: 30. 9. 2009, 22:09:03 · Upravil/a: _es
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 * |
#15 · Zasláno: 30. 9. 2009, 22:37:42
<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 |
#16 · Zasláno: 30. 9. 2009, 23:16:41 · Upravil/a: _es
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 href="#" onclick='var t = new Date; document.forms.form.Date.value = dveC(t.getUTCHours()) + ":" + dveC(t.getUTCMinutes());'> Opravené, viď nižšie. (Chamurappi) |
||
| Chamurappi Profil |
#17 · Zasláno: 30. 9. 2009, 23:29:46 · Upravil/a: Chamurappi
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 |
#18 · Zasláno: 30. 9. 2009, 23:57:57
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 * |
#19 · Zasláno: 1. 10. 2009, 00:01:31
no a v datumu mi to teoreticky již nehrozí, když počítám den a měsíc???
|
||
| RadimR Profil * |
#20 · Zasláno: 1. 10. 2009, 00:03:35
resp, kombinací jedné metody na datumu a druhé na měsíci je to vyloučeno
|
||
| _es Profil |
#21 · Zasláno: 1. 10. 2009, 00:11:11
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 |
#22 · Zasláno: 3. 10. 2009, 01:29:19
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 |
#23 · Zasláno: 3. 10. 2009, 02:41:46 · Upravil/a: _es
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 |
||
|
Časová prodleva: 16 let
|
|||
0