Tutorijali.Net forum

Full Version: Javascript kalendar problem
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pozdrav, jeli zna neko sto mi se godine ne ispisuju kako treba? Recimo za trenutni datum ispise tacno datum, oznaci ga, na vrhu ispise mjesec i pored 111, ako promjenim godinu na racunaru pa stavim 2012. ispise mjesec i 112 , heheh ludilo. Evo skripte:

Code:
<!--
var dan_u_sedmici = new Array('Ned','Pon','Uto','Sri','Cet','Pet','Sub');
var mjesec_u_godini = new Array('Januar','Februar','Mart','April','Maj','Jun','Jul','Avgust','Septembar','​Oktobar','Novembar','Decembar');

var datum = new Date();
var godina = datum.getYear();    
var mjesec = datum.getMonth();    // (0-11)
var dan = datum.getDate();    // (1-31)
var sedmica = datum.getDay();    // (0-6)

var dana_u_sedmici = 7;
var dana_u_mjesecu = 31;
var cal;

datum.setDate(1);
datum.setMonth(mjesec);

// oblikovanje (BORDER,BGCOLOR,CELLPADDING,BORDERCOLOR)

var TR_start = '<TR>';
var TR_end = '</TR>';
var osvjetljeno_start = '<TD WIDTH="30"><TABLE CELLSPACING=0 BORDER=1 BGCOLOR=FFFFFF><TR><TD WIDTH=20><B><CENTER>';
var osvjetljeno_end   = '</CENTER></TD></TR></TABLE></B>';
var TD_start = '<TD WIDTH="30"><CENTER>';
var TD_end = '</CENTER></TD>';

oblikuj =  '<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR=FFFFFF><TR><TD>';
oblikuj += '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2>' + TR_start;
oblikuj += '<TD COLSPAN="' + dana_u_tjednu + '" BGCOLOR="#F8D0C2"><CENTER><FONT SIZE=2><B>';
oblikuj += mjesec_u_godini[mjesec]  + '   ' + godina + '.</FONT></B>' + TD_end + TR_end;
oblikuj += TR_start;

// ispis naziva dana u sedmici
for(index=0; index < dana_u_sedmici; index++){
    if(index == sedmica){
        // podebljaj tekuci dan
        if(index == 0){
            oblikuj += TD_start + '<FONT SIZE=2 COLOR=red><B>' + dan_u_sedmici[index] + '</B></FONT>' + TD_end;
        }else{
            oblikuj += TD_start + '<FONT SIZE=2 COLOR=blue><B>' + dan_u_sedmici[index] + '</B></FONT>' + TD_end;
        }
    }else if(index == 0){
        // oznaci nedjelje
        oblikuj += TD_start + '<FONT SIZE=2 COLOR=red>' + dan_u_sedmici[index] + '</FONT>' + TD_end;
    }else{
        // ispisi ostale dane
        oblikuj += TD_start + '<FONT SIZE=2 COLOR=blue>' + dan_u_sedmici[index] + '</FONT>' + TD_end;
  }
}

oblikuj += TD_end + TR_end;
oblikuj += TR_start;

// popuni prazna polja za dane
for(index=0; index < datum.getDay(); index++){
    oblikuj += TD_start + ' ' + TD_end;
}

// ispis svih dana u mjesecu
for(index=0; index < dana_u_mjesecu; index++){
    if( datum.getDate() > index ){
        // podatak o rbr dana u sedmici (0-6)
        sedmicni_dan =datum.getDay();

        // otvara novi red za prvi dan u tjednu
        if(sedmicni_dan == 0)
            oblikuj += TR_start;
        
        if(sedmicni_dan != dana_u_sedmici){
            var day  = datum.getDate();
            // ispis dana u mjesecu
            if( dan==datum.getDate() ){
                // naglasavanje tekuceg dana
                if( sedmicni_dan==0 ){
                    // naglasavanje tekuceg dana ako je nedjelja
                    oblikuj += osvjetljeno_start + '<FONT SIZE=2 COLOR=red>' + day + '</FONT>' + osvjetljeno_end + TD_end;
                }else{
                    // naglasavanje ostalih tekucih dana
                    oblikuj += osvjetljeno_start + '<FONT SIZE=2>' + day + '</FONT>' + osvjetljeno_end + TD_end;
                }
            }else if( sedmicni_dan==0 ){
                // ispis nedjelja
                oblikuj += TD_start + '<FONT SIZE=2 COLOR=red>' + day + '</FONT>' + TD_end;

          }else{
                // ispis ostalih dana
                oblikuj += TD_start + '<FONT SIZE=2>' + day + '</FONT>' + TD_end;
            }
        }

        // kraj reda za zadnji dan u tjednu
        if(sedmicni_dan == dana_u_sedmici)
            oblikuj += TR_end;
    }
    // povecanje sve do kraja mjeseca
    datum.setDate(datum.getDate()+1);
}

oblikuj += '</TD></TR></TABLE></TABLE>';
document.write(oblikuj);

//-->
Korištenje `getYear()` se ne koristi više i vjerovatno će se nekada i potpuno izbaciti. Koristi `getFullYear()`.
Mogo si staviti gore i html i JS sve skupa, a ne da sad trebamo izmišljati html :)) Aj pukni sve gore pa ću pogledati, kratak sam s vremenom...
Reference URL's