Visualizzazione dei risultati da 1 a 5 su 5

Discussione: script mese e giorno

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    script mese e giorno

    qualcuno ha uno script in cui da una select seleziono l'anno in un altra il mese e nell'ultima il giorno? logicamente che controlli se il mese ha 31 o 30 o 28 giorni.
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova questo....

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    //----------------------------------------------------
    // variabili globali
    //----------------------------------------------------
    var globalYear  = 0;
    var globalmonth = 0;
    var globalDay   = 0;
    var mese        = new Array('Gen','Feb','Mar','Apr','Mag','Giu','Lug','Ago','Set','Ott','Nov','Dic');
    //----------------------------------------------------
    // Gestione degli anni
    //----------------------------------------------------
    function years(aYear) {
     if (aYear == null) {
      var today   = new Date();
    	currentYear = today.getFullYear();
      //------------ Assegnazione alla variabile globale
      globalYear = currentYear;	
     } else {
      currentYear = aYear;
      //------------ Assegnazione alla variabile globale
      globalYear  = aYear;
    	//------------ Inizializzazione mesi		
    	months(1);	
    	return;
     } // if (aYear == null)
     //---------- Fino a 50 anni prima dell'anno in corso
     startYear = currentYear - 50;
     //---------- Fino a 5 anni dopo dell'anno in corso
     endYear   = currentYear + 5;
     //---------- Riempimento del combo box "anno"
     for (i=startYear;i<=endYear;i++) {
      //----------- creazione di una nuova option
    	var newOption = document.createElement('OPTION');
    	//----------- Assegnazione della nuova opzione al combo
    	document.getElementById('anno').add(newOption);
    	//----------- Assegnazione del valore e del testo 
    	newOption.text  = i;
    	newOption.value = i;
    	//----------- Se l'anno in corso = a quello corrente
    	if (i == currentYear) {
    	  newOption.selected = true;
    	} // if (i == currentYear)
     } // for (i=startYear;i<=endYear;i++)
     if (aYear != null) {
    	//------------ Inizializzazione mesi		
    	months(1);	
    	return;
     } // if (aYear != null) 
    } // function years(aYear)
    
    //----------------------------------------------------
    // Gestione dei mesi
    //----------------------------------------------------
    function months(aMonth) {
     if (aMonth == null) {
      //------------ Mese in corso
      var today    = new Date();
      //------------ Ricavare il mese in corso + 1 perché Gennaio = 0
      currentMonth = today.getMonth() + 1; 
      //------------ Assegnazione alla variabile globale
      globalMonth = currentMonth;	
     } else {
      currentMonth = aMonth;
      //------------ Assegnazione alla variabile globale
      globalMonth  = aMonth;	
     } // if (aMonth == null) 
     //------------ Cancellazione dei dati già presenti
     document.getElementById('mese').innerHTML = ''; 
     //------------ In ogni anno ci sono sempre 12 mesi
     for (i=1;i<=12;i++) {
      //----------- creazione di una nuova option
    	var newOption = document.createElement('OPTION');
    	//----------- Assegnazione della nuova opzione al combo
    	document.getElementById('mese').add(newOption);
    	//----------- Assegnazione del valore e del testo 
    	newOption.text  = mese[i-1];
    	newOption.value = i;
    	//----------- Se il mese in corso = a quello corrente
    	if (i == currentMonth) {
    	  newOption.selected = true;
    	} // if (i == currentMonth) 
     } // for (i=1;i<=12;i++)  
     if (aMonth != null) { 
    	//------------ Inizializzazione giorni	
    	days(1);
     } // if (aMonth != null) 
    } // function months()
    
    //----------------------------------------------------
    // Gestione dei giorni
    //----------------------------------------------------
    function days(aDay) {
     //------------ Giorno in corso
     if (aDay == null) {
      var today    = new Date();
      //------------ Ricavare il mese in corso + 1 perché Gennaio = 0
      currentDay = today.getDate();
     } else {
      currentDay = aDay;
     } // if (aDay == null)  
     //------------ Cancellazione dei dati già presenti
     document.getElementById('giorno').innerHTML = '';
     //------------ In ogni mese ci sono almeno 28 giorni
     for (i=1;i<=28;i++) {
      //----------- creazione di una nuova option
    	var newOption = document.createElement('OPTION');
    	//----------- Assegnazione della nuova opzione al combo
    	document.getElementById('giorno').add(newOption);
    	//----------- Assegnazione del valore e del testo 
    	newOption.text  = i;
    	newOption.value = i;
    	//----------- Se il mese in corso = a quello corrente
    	if (i == currentDay) {
    	  newOption.selected = true;
    	} // if (i == currentDay)  
     } // for (i=1;i<=28;i++)
     //------------ Il mese di febbraio puo' avere 29 giorni
     if (globalMonth == 2) {
      //------------ Se è un anno bissestile - ATTENTO ci sono altri requisiti !!!!
    	if ((globalYear/4) == parseInt(globalYear/4)) {
       //----------- creazione di una nuova option
       var newOption = document.createElement('OPTION');	
    	 //----------- Assegnazione della nuova opzione al combo 
    	 document.getElementById('giorno').add(newOption);
    	 //----------- Assegnazione del valore e del testo 
    	 newOption.text  = 29;
    	 newOption.value = 29;
    	 //----------- Se il mese in corso = a quello corrente
    	 if (currentDay == 29) {
    	  newOption.selected = true;
    	 } // 	if (currentDay == 29)
    	} // if ((globalYear/4) == parseInt(globalYear/4))
     } else {
      //----------- Tutti i mesi hanno almeno 30 giorni
      //----------- creazione di una nuova option
      var newOption = document.createElement('OPTION');		
    	//----------- Assegnazione della nuova opzione al combo per il giorno 29
    	document.getElementById('giorno').add(newOption);
    	//----------- Assegnazione del valore e del testo 
    	newOption.text  = 29;
    	newOption.value = 29;
    	//----------- Se il mese in corso = a quello corrente
    	if (currentDay == 29) {
    	  newOption.selected = true;
    	} // 	if (currentDay == 29)
      //----------- creazione di una nuova option
      var newOption = document.createElement('OPTION');		
    	//----------- Assegnazione della nuova opzione al combo il giorno 30
    	document.getElementById('giorno').add(newOption);
    	//----------- Assegnazione del valore e del testo 
    	newOption.text  = 30;
    	newOption.value = 30;
    	//----------- Se il mese in corso = a quello corrente
    	if (currentDay == 30) {
    	  newOption.selected = true;
    	} // 	if (currentDay == 30)		
    	//----------- Alcuni mesi hanno 31 giorni
    	if (globalMonth != 4 && globalMonth != 6 && globalMonth != 9 && globalMonth != 11) {  
       //----------- creazione di una nuova option
       var newOption = document.createElement('OPTION');		
    	 //----------- Assegnazione della nuova opzione al combo il giorno 31
    	 document.getElementById('giorno').add(newOption);
    	 //----------- Assegnazione del valore e del testo 
    	 newOption.text  = 31;
    	 newOption.value = 31;
    	 //----------- Se il mese in corso = a quello corrente
    	 if (currentDay == 31) {
    	  newOption.selected = true;
    	 } // 	if (currentDay == 30)		
    	} // if (globalMonth != 4 && globalMonth != 6 && globalMonth != 9 && globalMonth != 11)
     } // if (globalMonth == 2)
     //------------ Assegnazione alla variabile globale
     globalDay = currentDay; 
    } // function days() 
    //-->
    </script>
    
    
    </head>
    <body>
    Giorno <select id="giorno" ></select>
    Mese   <select id="mese"   onchange="months(this.value);"></select>
    Anno   <select id="anno"   onchange="years(this.value);"></select>
    
    <script language="JavaScript" type="text/javascript">
    <!--
    years();
    months();
    days();
    //-->
    </script>
    
    </body>
    </html>

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    manca qualcosa..

    non mi funziona. devo mettere qualcosa nel tag body?
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    funziona alla perfezione

    Oggi non faccio altro che archiviarmi gli script di badaze nella mia libreria

    Pietro

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.