-
associare numeri in js
ciao!!! ho le var h, m, n che sono rispettivamente ore, minuti, e secondi di quel momento.
Esempio: 19, 55, 05
vorrei unirle, ma non sommarle, in modo da formare:
195505
facendo
var tot = h+m+n;
viene fuori la somma...
come posso fare?
grazie a tutti!
-
Il metodo più sbrigativo, anche se il più rozzo, è:
Codice:
var tot = h+''+m+''+n;
in questo modo ti assicuri che nella concatenazione di stringhe (che è il tuo scopo) non vengano a trovarsi vicine due somme tra valori numerici.
Proprio per quest'ultima osservazione per una soluzione un po' più "raffinata" potresti utilizzare:
Codice:
var tot = h + m.toString() + n;
i minuti vengono esplicitamente convertiti in stringa e gli altri due valori numerici (h s) avendo concatenata tra di loro -nel mezzo- una stringa non creano problemi di somme numeriche o altro, ma viene usato -implicitamente- il loro valore stringa per far parte di un'unica stringa.
-
Con lo script messo sopra c'è un piccolo problema, se uno dei numeri è minore di 10 (come nel caso proposto), l'output che si ottiene non è 195505 ma 19555.
Puoi ovviare al problema con uno script più "mirato", ma che ovviamente richiede la conoscenza del formato in cui devi memorizzare l'ora:
Codice:
var str = '' + (h < 10 ? '0' + h : h) + (m < 10 ? '0' + m : m) + (s < 10 ? '0' + s : s)
la variabile str contiene così una STRINGA ottenuta giustapponendo i tre valori. Se ti serve un NUMERO ti basta ovviamente fare questo:
Codice:
var nr = parseInt (str)
Statemi bene...
-
grazie millle a tutti e due ;)
un'ultima cosa, sempre sul js..
come posso fare che alla pressione di un tasto scelto da me (in questo caso CTRL o INVIO) si esegua una funzione tipo cont(); ?
grazie a tutti!
-
Puoi usare il gestore di evento onKeyDown, ma funziona con qualsiasi tasto... non so se in JS esista un modo per stabilire quale sia il tasto premuto...
Stammi bene...
-
Se guardate qui trovate tutte le risposte.
Il Ctrl è 17 e l'Invio è il 13.
Codice HTML:
<html>
<head>
<title>Esempio tasto</title>
</head>
<body bgcolor="#FFFFFF" onload="test()">
<SCRIPT LANGUAGE="JavaScript"><!--
var abilitato=0;
var strin="";
function test(){
//analizza se il browser e' compatibile con Javascript
browserName=navigator.appName.charAt(0);
browserVer=parseInt(navigator.appVersion);
if (browserName=="M" && browserVer >= 3) abilitato=1;
if (browserName=="N" && browserVer >= 3) abilitato=2;
if (browserName=="N" && browserVer >= 4) abilitato=3;
if (browserName=="M" && browserVer >= 4) abilitato=4;
}
function keyDown(e) {
if (abilitato==3) {
//var ns4=1;
var nKey=e.which; var ieKey=0;
var realkey = String.fromCharCode(e.which);
strin="Codice tasto in Netscape: "+nKey+". Premuto tasto "+realkey
}
if (abilitato==4) {
//var ns4=0;
var ieKey=event.keyCode; var nKey=0;
var realkey = String.fromCharCode(event.keyCode);
strin="Codice tasto in Explorer: " + ieKey+". Premuto tasto "+realkey
}
alert(strin)
}
document.onkeydown = keyDown
//if (ns4) document.captureEvents(Event.KEYDOWN)
//-->
</SCRIPT>
<p>Premi un tasto qualsiasi della tastiera e notare come alcuni tasti vengano
individuati da Netscape e altri no...</p>
<p><--- <a href="javascript:history.back()">Torna indietro</a></p>
<p><!--Copyright 2000 Valdelli & HTML.it--></p>
</body>
</html>