JesusFreak777
Erfahrenes Mitglied
Hey Leute,
ich hab irgendwie Mist gebaut und das scheint jetzt ein Größeres Problem zu werden.
Ich bin gerade dabei mir einen Kalender zu bauen mit dem ich Wochenweise scrollen (momentan nur via Button) kann.
Soweit funktioniert das auch gut,… aber jetzt kommt ein für mich unerklärlicher Fehler:
Wenn ich die Kalenderwoche 43 erreiche (bei ein Paar Jahren getestet, vor allem 2010 und 2011) komme ich nicht mehr weiter. Zurück geht Komischerweise immer. ?active=2011-45 dann kann ich eine Kalenderwoche anspringen (die aktive Woche ist immer in der 2. Tabellenzeile)
Hier kann man das Programm mal einsehen:
http://0sb.de/script/calendar/calendar.php?active=2011-40
hier die stellen an denen es liegen könnte:
//die stelle an der ich meine Session setze und jeh nach parameter ne woche addiere oder subtrahiere:
//die funktion (nicht von mir) die mir aus kalenderwoche montag macht (also date('d.m.Y', mondaykw(5,2011)); gibt 31.01.2011)
//mein Array mache ich so
die Ausgabe lass ich mal weg, an der liegt es nicht, selbst wenn ich nur das Array ]print_r]e komme ich nicht weiter ?active=next
evtl. kann mir ja jemand nen tipp geben (zumindest wo ich suchen muss.
vielen dank das das du überhaupt soviel angeschaut hast!
ich hab irgendwie Mist gebaut und das scheint jetzt ein Größeres Problem zu werden.
Ich bin gerade dabei mir einen Kalender zu bauen mit dem ich Wochenweise scrollen (momentan nur via Button) kann.
Soweit funktioniert das auch gut,… aber jetzt kommt ein für mich unerklärlicher Fehler:
Wenn ich die Kalenderwoche 43 erreiche (bei ein Paar Jahren getestet, vor allem 2010 und 2011) komme ich nicht mehr weiter. Zurück geht Komischerweise immer. ?active=2011-45 dann kann ich eine Kalenderwoche anspringen (die aktive Woche ist immer in der 2. Tabellenzeile)
Hier kann man das Programm mal einsehen:
http://0sb.de/script/calendar/calendar.php?active=2011-40
hier die stellen an denen es liegen könnte:
//die stelle an der ich meine Session setze und jeh nach parameter ne woche addiere oder subtrahiere:
PHP:
$s_day = 24*60*60;
$s_week = 7*$s_day;
if(!isset($_SESSION['active']))
{
$_SESSION['active'] = $active;
}
if(isset($_GET['active']))
{
$ac_arr = explode('-', $_SESSION['active']);
$ac_kweek = $ac_arr[1];
$ac_year = $ac_arr[0];
if($_GET['active'] == "next")
{
$re_next = mondaykw($ac_kweek, $ac_year) + $s_week;
$_SESSION['active'] = date('Y-W', $re_next);
}
elseif($_GET['active'] == "last")
{
$re_last = mondaykw($ac_kweek, $ac_year) - $s_week;
$_SESSION['active'] = date('Y-W', $re_last);
}
else
{
$_SESSION['active'] = $_GET['active'];
}
}
//die funktion (nicht von mir) die mir aus kalenderwoche montag macht (also date('d.m.Y', mondaykw(5,2011)); gibt 31.01.2011)
PHP:
function firstkw($jahr) {
$erster = mktime(0,0,0,1,1,$jahr);
$wtag = date('w',$erster);
if ($wtag <= 4) {
/**
* Donnerstag oder kleiner: auf den Montag zurückrechnen.
*/
$montag = mktime(0,0,0,1,1-($wtag-1),$jahr);
} else {
/**
* auf den Montag nach vorne rechnen.
*/
$montag = mktime(0,0,0,1,1+(7-$wtag+1),$jahr);
}
return $montag;
}
function mondaykw($kw,$jahr) {
$firstmonday = firstkw($jahr);
$mon_monat = date('m',$firstmonday);
$mon_jahr = date('Y',$firstmonday);
$mon_tage = date('d',$firstmonday);
$tage = ($kw-1)*7;
$mondaykw = mktime(0,0,0,$mon_monat,$mon_tage+$tage,$mon_jahr);
return $mondaykw;
}
//mein Array mache ich so
PHP:
$ac_daylist_arr = array();
$lwmond = mondaykw($ac_kweek, $ac_year) - ($bv_week * $s_week);
for($lw = 0; $lw <= $bv_week + $af_week; $lw++)
{
for($sw = 0; $sw <= 7 - 1; $sw++)
{
$ac_day = $lwmond + ($sw*$s_day);
array_push($ac_daylist_arr, $ac_day);
}
$lwmond = $lwmond + $s_week;
}
die Ausgabe lass ich mal weg, an der liegt es nicht, selbst wenn ich nur das Array ]print_r]e komme ich nicht weiter ?active=next
evtl. kann mir ja jemand nen tipp geben (zumindest wo ich suchen muss.
vielen dank das das du überhaupt soviel angeschaut hast!