Newsgroup: it.comp.lang.javascript
Titolo: Contdown Condizionato

Salve ragazzi,
ho Due piccoli problemi con uno Script che fa il conto alla rovescia 
verso una certa data.
Premetto che non ho dimesticgezza con il javascript ma questo script è 
molto utile e vorrei riuscire ad utilizzarlo.
Lo script calola ad esempio quanti giorni, Ore Minuti e Secondi mancano 
a Natale:
<SCRIPT LANGUAGE="JavaScript">
<!--
function getTime() {
now = new Date();
y2k = new Date("Dec 25 2005 00:00:00");
days = (y2k - now) / 1000 / 60 / 60 / 24;
daysRound = Math.floor(days);
hours = (y2k - now) / 1000 / 60 / 60 - (24 * daysRound);
hoursRound = Math.floor(hours);
minutes = (y2k - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * 
hoursRound);
minutesRound = Math.floor(minutes);
seconds = (y2k - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * 
hoursRound) - (60 * minutesRound);
secondsRound = Math.round(seconds);
sec = (secondsRound == 1) ? " Secondo" : " Secondi";
min = (minutesRound == 1) ? " Minuto" : " Minuti, ";
hr = (hoursRound == 1) ? " Ora" : " Ore, ";
dy = (daysRound == 1)  ? " Giorno" : " Giorni, "
document.timeForm.input1.value = "Mancano " + daysRound  + dy + 
hoursRound + hr + minutesRound + min + secondsRound + sec + " A Natale.";
newtime = window.setTimeout("getTime();", 1000);
}
// -->
</script>
Lo script po lo richiamo in questo modo:
<form name=timeForm>
<input type="texte" name=input1 size=110 border-style="none" readonly 
value="onLoad="getTime()"" style="border-bottom: 0px solid; border-left: 
0px solid;border-right: 0px solid;border-top: 0px solid;font:12px arial, 
helvetica,sans-serif">
</form>
I Problemi che Vi pongo sono Due:
1) E' Possibile ed eventualmente Come posso fare , magari tramite IF , 
per fare in modo che alla data prestabilita (in questo caso 25/12/2005) 
Il contdown mi Scriva "DATA RAGGIUNTA" anzichè continuare in negativo 
come fa ( mancano -1 giorni 8 ore etc.)
2) La data per il contdown è ricavata da quà " y2k = new Date("Dec 25 
2005 00:00:00"); ", Come vedete il mese viene inserito con le prime 
lettere, cè qualche modo per inserirlo in forma numerica????
Ho provato a scrivere 12 al posto di DEC ma lo Script non funzione ... 
riporta:
" Mancano NaN giorni NaN Ore NaN minuti NaN Secondi a Natale ".
Vi ringrazio infinitamente per l'eventuale aiuto, anche perchè non so 
più dove sbattere la testa.
Saluti

 " Mancano NaN giorni NaN Ore NaN minuti NaN Secondi a Natale ".
i mesi vanno da 0 a 11

 verso una certa data.
google > cerca "javascript data object"
Il primo risultato:
http://www.w3schools.com/js/js_obj_date.asp
nella cui pagina leggo (ho aggiunto i commenti):
   // Crea un nuovo oggetto data, destinato a contenere
   // la data di riferimento (ad es. il giorno di Natale)
var myDate=new Date();
   // Imposta la data con il metodo setFullYear(yyyy,m,d),
   // tenendo presente che i mesi vanno da 0 a 11
myDate.setFullYear(2010,0,14); // Questo e' il 1 gennaio 2010
   // Crea un nuovo oggetto data, destinato a contenere
   // la data odierna
var today = new Date();
   // Confronta le due date: e' cosi' che puoi decidere se
   // visualizzare "Data raggiunta" oppure fare i calcoli
   // necessari e visualizzare "Mancano... al giorno..."
if (myDate>today) {
  alert("Today is before 14th January 2010");
     // Nel tuo esempio:
     // document.timeForm.input1.value="Data raggiunta";
}
else {
  alert("Today is after 14th January 2010");
     // Nel tuo esempio, fai i calcoli e quindi:
     // document.timeForm.input1.value = "Mancano "+...
};
-- 
Nando [?]
Ex-Apostolo della Ex-Prova


[CUT]
Grazie infinite Nando,
sei stato estremamente gentile, disponibile ed esaustivo.
  Vorrei solo porti un ultima domanda:
Il fatto della data č un po seccante con i mesi da 0 a 11.
Non cč nessun modo per usarli in maniera convenzionale da 1 a 12 ??
Forse faccio domande idiote ma sarebbe molto piů facile da manipolare un 
formato del genere.
In ogni case ancora Grazie.
TB

 Non cè nessun modo per usarli in maniera convenzionale da 1 a 12 ??
No, quello e' il modo in cui va specificato il mese. Se hai il mese in una
variabile m, con valore da 1 a 12, basta indicare m-1 :-)
Ah, guardati anche il link postato da Cristiano, ci sono informazioni
utili, non ti limitare alle fesserie che ho postato io.
Ciao.
