Autor | Zpráva | ||
---|---|---|---|
Filips Profil |
#1 · Zasláno: 3. 7. 2008, 00:29:52
Ahoj, chtěl bych se zeptat, jestli exituje někde návod jak vytvořit webový kalendář podobný tomu, který je na našich stránkách: www.paintball-nivnice.cz bohužel tento kalendář mi nedostačuje, ale jako pracovní základ by byl vynikající, existuje nějaký tutorial na výrobu? Díky
|
||
LamiCZ Profil * |
#2 · Zasláno: 3. 7. 2008, 04:50:48
Zdar, toto jsem si udelal, je to na bazi timestamp. Tohle je lite verze, kde se automaticky dnesni a starsi dny zobrazi jako odkaz. Mam i mnohem slozitejsi verzi s DB a zobrazenim udalosti (vcetne rozliseni jednodennich a vicedennich).
P.S. neni to zadna kodova prehlidka, bylo to napsany rychle na jeden projekt ;) <? if((isset($_GET['tstamp'])) && (strlen($_GET['tstamp']) == 10)){ $year = date("Y", $_GET['tstamp']); $month = date("n", $_GET['tstamp']); }else{ $year = date("Y"); $month = date("n"); } $curr_month_start = mktime(0, 0, 0, $month, 1, $year); $days = date("t", $curr_month_start); $curr_month_end = mktime(0, 0, 0, $month, $days, $year); $first_day = date("w", $curr_month_start); $first_day_start = ""; if($first_day > 0){ for($i = 0; $i < ($first_day - 1); $i++){ $first_day_start .= "<td></td>"; } }else{ $first_day_start = "<td></td><td></td><td></td><td></td><td></td><td></td>"; } echo "<table class=\"cal\">\n"; echo "<tr>\n"; $r = 1; for($day = 1; $day <= $days; $day++){ $curr_day_start = mktime(0, 0, 0, $month, $day, $year); $curr_day_end = mktime(23, 59, 59, $month, $day, $year); if($days == $day){ $curr_month_last_day_end = $curr_day_end; } if($day == 1){ $curr_month_first_day_start = $curr_day_start; } $css_today = ""; if(($day == date("j") && ($month == date("n")))){ $css = "<td id=\"calendar_today\">"; }elseif(($day == date("j",$_GET['tstamp'])) && (isset($_GET['tstamp']))){ $css = "<td id=\"calendar_get\">"; }else{ $css = "<td>"; } $first_day_move = ""; if($day == 1){ $first_day_move = $first_day_start; } if((($day <= date("j") && ($month <= date("n")))) || ($month < date("n"))){ echo $first_day_move.$css."<a href=\"?tstamp=$curr_day_start&page=events\">$day</a></td>\n"; }else{ echo $first_day_move.$css.$day."</td>\n"; } if($day == 1){ if($first_day == 0){ $r = 7; }else{ $r = $r + $first_day - 1; } } $c = $r % 7; if(($c == 0) && ($day != date("t"))){ echo "</tr><tr>\n"; }elseif(($c == 0) && ($day == date("t"))){ echo "</tr>\n"; }elseif(($day == date("t")) && ($c == 0)){ echo "</tr>\n"; } $r++; } echo "<tr><td class=\"calendar\"><a href=\"?tstamp=".($curr_month_first_day_start - 1)."#cal\"><</a></td><td class=\"center\" colspan=\"5\"><span>".date("F", $curr_month_start)." - ".$year."</span></td><td class=\"calendar\"><a href=\"?tstamp=".($curr_month_last_day_end + 1)."#cal\">></a></td></tr>\n"; echo "</table>\n"; ?> |
||
peta Profil |
#3 · Zasláno: 3. 7. 2008, 07:26:56 · Upravil/a: peta
http://peter-mlich.wz.cz/x/ww/js/jspriklady.htm
minikalendar, kalendar tutorial je asi takovy, ze spocitas pocet dni v mesici m0 = new Date(y,m, 1); m1 = new Date(y,m+1,1); days1 = Math.round((m1.getTime()-m0.getTime())/86400000); a zjistis, ktery den v tydnu je prvniho w0 = m0.getDay(); mno, a pak uz jen od 0 do dne prvniho vykreslis nic od dne prvniho po 7 dnech vykreslis pocet dni na konci vykresli prazdne policka po 7dmy den. tak mne napada, ze mozna jednodussi si predem pripravit prazdne pole o Math.ceil((w0+days1)/7)*7 polickach a do nej doplnit cisla. Jednoduseji by se to vykreslovalo scriptem nez to mam ja. |
||
Filips Profil |
#4 · Zasláno: 3. 7. 2008, 20:51:39
LamiCZ
A mohl bys poskytnout i tu složitější verzi? Díky |
||
Časová prodleva: 16 let
|
0