Visualizzazione risultati 1 fino 11 di 11

Discussione: Funzione da errore

  1. #1
    Guest

    Predefinito Funzione da errore

    Io non so perché quando mette a video prima del 31-12 stampa 116, dal 1-1 stampa giusto 2016

    Codice:
    function AnnoDate() {
    var calendario = new Date();
    var giorno = calendario.getDate();
    var mese = (calendario.getMonth()+1); // Gennaio=1	
    var year = calendario.getYear()+1;  // Aggiunge un anno
    var yearX = calendario.getYear();
    if (yearX < 1000) yearX += 1900;
    var nodate = 1;  
    if ((giorno >=26 && giorno <=31) && (mese ==12)) {
    document.write('+ year+'); var nodate = 0; 
    }else{
    if ((giorno >=1 && giorno <=2) && (mese ==1)) { 
    document.write('+ yearX+'); var nodate = 0; 
    }
     }
     }

  2. #2
    Guest

    Predefinito

    perchè stai usando getYear che è stato deprecato e non lavora bene devi usare getFullYear()....Comunque se apri in firefox un debug e metti un punto di controllo ad inizio funzione e poi clicchi sul bottone che chiama la funzione poi fai f10 cioè vai avanti di una riga e vedi passo passo passando sopra le variabili con il mouse il valore che prendono...l'errore è nel getYear....CIau

  3. #3
    Guest

    Predefinito

    Non so usare il debug, ho messo come hai detto, ma stampa +year+

    function AnnoDate() {
    var calendario = new Date();
    var giorno = calendario.getDate();
    var mese = (calendario.getMonth()+1); // Gennaio=1
    var year = calendario.getFullYear()+1; // Aggiunge un anno
    var yearX = calendario.getFullYear();
    if (yearX < 1000) yearX += 1900;
    var nodate = 1;
    if ((giorno >=26 && giorno <=31) && (mese ==12)) {
    document.write('+ year+'); var nodate = 0;
    }else{
    if ((giorno >=1 && giorno <=2) && (mese ==1)) {
    document.write('+ yearX+'); var nodate = 0;
    }
    }
    }

  4. #4
    Guest

    Predefinito

    per caso è questo che vuoi ottenere?:

    Codice:
    function AnnoDate() {
    var calendario = new Date();
    var giorno = calendario.getDate();
    var mese = (calendario.getMonth()+1); // Gennaio=1
    var year = calendario.getFullYear()+1; // Aggiunge un anno
    var yearX = calendario.getFullYear();
    if (yearX < 1000) yearX += 1900;
    var nodate = 1;
    if ((giorno >=26 && giorno <=31) && (mese ==12)) {
    document.write(year); var nodate = 0;
    alert(year);
    }else{
    if ((giorno >=1 && giorno <=2) && (mese ==1)) {
     document.write(yearX); 
     var nodate = 0;
    }
    }
    
    
     document.write('year:'+year +'yearX:'+yearX); 
    }
    Per il debug ti do un consiglio vai qui

    http://getfirebug.com/

    E lo installi per firefox, poi tutti i tuoi file html, javascript e css e chiamata al php sono all'interno del firebug, come accedere?
    Una volta installato, apri la tua pagina html e dalla tastiera clicchi F12 ti si apre firebug vedrai che hai console, HTML, CSS, SCRIPT se la tua funzione è all'interno di un file javascript vedrai cliccando nella freccia in basso in SCRIPT il nome del tuo file Javascript dove è la funzione in questo caso AnnoDate() ok, ti posizioni con il mouse a sinistra del codice e clicchi sul numero della prima riga all'interno della funzione, ti comparirà un punto di controllo rosso....ok a questo punto cliccherai sul bottone HTML che chiama quella funzione e vedrai tenendo sempre aperto firebug che ti comparirà una riga gialla con una freccia nel punto di controllo che hai impostato(ovviamente il PARSE ci deve passare per fermarsi)...a questo punto con F10 ti muovi riga per riga all'interno del tuo codice e vedrai che la riga gialla si sposta in base ai comandi che interpreta, al codice che hai scritto in poche parole, quando passi alla riga sotto la riga sopra viene valorizzata e passando con il muose vedi tutti i valori che ha preso in quel preciso istante...se invece mentre fai F10 il PARSE deve chiamare una funzione allora clicchi F11 ed automaticamente la riga gialla si sposterà all'interno della funzione...per far andare avanti veloce hai una freccia blu nella testata di firebug la clicchi e lui esegue veloce ed esce....
    Il debug è importantissimo..Ciau

    Ovviamente puoi anche creare direttamente codice JAVASCRIPT e testarlo all'interno della pagina html, basta che vai su console e scrivi la tua espressione javascript nella console a destra e fai esegui, se vuoi vedere i valori ID delle input html, dalla pagina html cliccherai sulla input interessata pulsante destro del mouse e fai controlla elemento con firebug...ed automaticamente firebug ti posiziona nella input interessata....etc...etc...studiatelo un pochino dai...
    Ultima modifica di fractalcosmo : 08-12-2015 alle ore 16.19.18

  5. #5
    Guest

    Predefinito

    Io il risultato lo ottengo con questi 2 codici, uno fa apparire la date fino al 31-12 e l'altro dal 1-1. Invece di 2 codici, ne vorrei usare uno, tutto qui. Per vedere come appare a video entra nel mio forum e sposta la data del tuo browser. Ho visto che Debugger c'è l'ho già installato, lo uso per i css. I miei script sono interni nella pagina html.

    Codice:
    //Nuovo anno che si aggiorna automaticamente dal 26-12 al 31-12		
    function AnnoDate() {
    var calendario = new Date();
    var giorno = calendario.getDate();
    var mese = (calendario.getMonth()+1); // Gennaio=1	
    var year = calendario.getFullYear()+1;  // Aggiunge un anno
    if (year < 1000) year += 1900;
    var nodate = 1;  
    if ((giorno >=26 && giorno <=31) && (mese ==12)) {
    document.write('<span style="vertical-align:38px; font-family:times; font-style:italic; font-size:2.5em; color:#bd8528; text-shadow: 0px 1px 1px #ccc;">'+ year+'</span>'); var nodate = 0; 
    }
     }
     
    //Nuovo anno che si aggiorna automaticamente dal 1-1 al 2-1		
    function AnnoDateX() {
    var calendario = new Date();
    var giorno = calendario.getDate();
    var mese = (calendario.getMonth()+1); // Gennaio=1	
    var year = calendario.getFullYear();
    if (year < 1000) year += 1900;
    var nodate = 1;  
    if ((giorno >=1 && giorno <=2) && (mese ==1)) { 
    document.write('<span style="vertical-align:38px; font-family:times; font-style:italic; font-size:2.5em; color:#bd8528; text-shadow: 0px 1px 1px #ccc;">'+ year+'</span>'); var nodate = 0; 
    }
     }
    ...
    <script>
    AnnoDate();
    AnnoDateX();
    </script>
    Ultima modifica di photoman : 08-12-2015 alle ore 18.29.33

  6. #6
    Guest

    Predefinito

    Non ho il link del tuo forum...ho provato il codice in locale è sinceramente funziona cioè fa quello che hai scritto a parte alcune cose che forse possono essere omesse, però in base alle date fa vedere 2015 o 2016 tu dici nella funzione AnnoDate() se il giorno è compreso tra 26 e 31 compresi ed il mese è 12 allora fa vedere 2016, se invece il giorno è 1 o 2 del mese di gennaio fa vedere 2015...sia chiaro ad oggi cioè 8/12/2015 quando sarà gennaio 2016 il primo ed il 2 di gennaio farà vedere 2016...ed tra il 26 ed il 31 2016 farà vedere 2017...
    Tu fondamentamente stai aggiungendo un anno tra le date comprese tra il 26 e il 31 dicembre....
    Ultima modifica di fractalcosmo : 08-12-2015 alle ore 18.30.42

  7. #7
    Guest

  8. #8
    Guest

    Predefinito

    Ahhh adesso ho capito, tu vuoi che dal 26 dicembre ci sia scritto Buon 2016...eh che ce vò? ;) va bene la prima funzione unisci gli IF e rinomina year come hai fatto prima...nell'if del 26 al 31 metti year+1 e nell'altro lasci year...O no?

  9. #9
    Guest

    Predefinito

    Ho messo così, dal 1-1 mi mette 2017, non ho capito bene questa parte

    Codice:
    //Nuovo anno che si aggiorna automaticamente dal 26-12 al 2-1		
    function AnnoDate() {
    var calendario = new Date();
    var giorno = calendario.getDate();
    var mese = (calendario.getMonth()+1); // Gennaio=1	
    var year = calendario.getFullYear()+1;  // Aggiunge un anno
    if (year < 1000) year += 1900;
    var nodate = 1;  
    if (((giorno >=26 && giorno <=31) && (mese ==12)) || ((giorno >=1 && giorno <=2) && (mese ==1))) {
    document.write('<span style="vertical-align:38px; font-family:times; font-style:italic; font-size:2.5em; color:#bd8528; text-shadow: 0px 1px 1px #ccc;">'+ year+'</span>'); var nodate = 0; 
    }
     }

  10. #10
    Guest

    Predefinito

    Ehh ma PhotoMan così prendi sempre year + 1 tu devi dire

    if (giorno>= 16 && giorno<=31 && mese==12){
    year+1
    }
    if (giorno 1 o 2 e mese==1){
    year
    }

    così dai:


    Codice:
    
    //Nuovo anno che si aggiorna automaticamente dal 26-12 al 2-1		
    function AnnoDate() {
    var calendario = new Date();
    
    var giorno = calendario.getDate();
    
    var mese = (calendario.getMonth()+1); // Gennaio=1	
    
    var yearOne  = calendario.getFullYear()+1;  // Aggiunge un anno
    var year= calendario.getFullYear();
    
    if ((giorno >=26 && giorno <=31) && mese ==12) {
    document.write('<span style="vertical-align:38px; font-family:times; font-style:italic; font-size:2.5em; color:#bd8528; text-shadow: 0px 1px 1px #ccc;">'+ yearOne+'</span>');
    }
     
    if ((giorno >=1 && giorno <=2) && mese ==1){
    document.write('<span style="vertical-align:38px; font-family:times; font-style:italic; font-size:2.5em; color:#bd8528; text-shadow: 0px 1px 1px #ccc;">'+ year+'</span>');
    }
    
     }

  11. #11
    Guest

    Predefinito

    Ok, funziona

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •