Problem mit Kalender Skript
hi,
hab ein Problem mit einem Kalender Skript. der aktuelle Monat wird mir korrekt angezeigt. Jetzt habe ich das Skript etwas verändert, und zwar so, dass ich im Kalender blättern kann. Dazu übergebe ich via GET den Monat und das Jahr. das fange ich dann auf und übergebe es an das Kalender Skript. Das Problem was ich nun habe, ist dass zum Beispiel der Juni diesen Jahres an einem Montag startet. Er sollte aber an einem Sonntag beginnen. Kann den Fehler leider nicht finden, vermute aber fast, dass es an meinen Änderungen liegt und nicht an dem Skript selber
Hoffe ihr könnt mir da helfen
danke schonmal
(es folgt weiterer irrelevanter Quellcode)
NACHTRAG:
da das datumsarray geändert wurde, muss auch der daumswert angepasst werden.
das problem ist, wenn der erste tag auf einen sonntag fällt, dann gibt getadte eine null zurück
das problem daran ist nun, dass ich eins abziehe und somit den wert im ersten schleifendurchlauf unterhalb
der zählvariable habe und damit ein datumswert angezeigt wird. deshalb muss als erstes +7 gerechnet werden.
eigentlich nur +6, aber bei der überprüfung wird ja eins abgezogen.
somit funktioniert der kalender endlich.
danke euch trotzdem
hab ein Problem mit einem Kalender Skript. der aktuelle Monat wird mir korrekt angezeigt. Jetzt habe ich das Skript etwas verändert, und zwar so, dass ich im Kalender blättern kann. Dazu übergebe ich via GET den Monat und das Jahr. das fange ich dann auf und übergebe es an das Kalender Skript. Das Problem was ich nun habe, ist dass zum Beispiel der Juni diesen Jahres an einem Montag startet. Er sollte aber an einem Sonntag beginnen. Kann den Fehler leider nicht finden, vermute aber fast, dass es an meinen Änderungen liegt und nicht an dem Skript selber
Hoffe ihr könnt mir da helfen
danke schonmal
// Array der Wochentag und Monate
$weekdays = array("Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag");
$monats = array("Januar", "Februar", "März", "April", "Mai","Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
//wenn ein Datum ausgewählt wurde, wird es so abgeschickt
if(isset($_POST['submit_datum'])){
//Erzeugung eines Arrays, damit anderer Code im Skript nicht geändert werden muss
$heute = array("mon","year");
$heute[year]=$_POST['jahr'];
$heute[mon]=($_POST['monat']+1);
}else{
// heutiges Datum bekommen, wenn weder post noch get gesetzt sind
//wenn über die verlinkungen oben gegangen wird, wird der tag nciht gesetzt
// wenn der tag auch noch gesetzt wurde, dann wurde ein einzzelner tag ausgewählt
if(!isset($_GET['jahr']) && !isset($_GET['monat']) || $_GET['jahr']=='' || $_GET['monat']==''){
$heute = getdate();
}else{
//Erzeugung eines Arrays, damit anderer Code im Skript nicht geändert werden muss
//Anpassung des Monats
$heute = array("mon","year");
$heute[year]=$_GET['jahr'];
$monat = $_GET['monat'];
if($monat>12){$monat = $monat - 12;}
$heute[mon]=$monat;
}
}
$monat = $heute[mon];
$jahr = $heute[year];
// Zeiger auf den Anfang des Monats setzten
$start = mktime ( 0, 0, 0, $monat, 1, $jahr );
$datum = getdate($start);
/*
Wochentag = $datum[weekday]
Wochentag als Int = $datum[wday]
Monatstag = $datum[mday]
Monat als Zahl = $datum[mon]
Monat als String = $datum[month]
Jahr = $datum[year]
*/
//Anzeige des Monats über der Tabelle
//Ermittelung des Monats als Zahl und dann den deutschen Monat aus dem Array anzeigen lassen
echo "<div align='left'><h4><a href=".$_SERVER['PHP_SELF']."?$sName=$sID&jahr=";
if(($datum[mon])==1){
echo ($datum[year]-1)."&monat=".($datum[mon]+11).">".$monats[$datum[mon]+10]."</a> - ";
}else{
echo $datum[year]."&monat=".($datum[mon]-1).">".$monats[$datum[mon]-2]."</a> - ";
}
echo "".$monats[$datum[mon]-1] . " " . $datum[year]." ";
echo " - <a href=".$_SERVER['PHP_SELF']."?$sName=$sID&jahr=";
if(($datum[mon]+1)==13){
echo ($datum[year]+1)."&monat=".($datum[mon]+1).">".$monats[$datum[mon]-12]."</a></h4></div>";
}else{
echo $datum[year]."&monat=".($datum[mon]+1).">".$monats[$datum[mon]]."</a></h4></div>";
}
?>
<form method='post' id='form' name='form' action='<?php echo htmlentities($_SERVER['PHP_SELF']) . "?$sName=$sID&seite=".$seite; ?>'>
<table border="1">
<?php
echo '<tr class="tabelle_th">';
foreach ($weekdays as $weekday) // Wochentage einschreiben
{
echo '<td align="center">'.$weekday.'</td>';
}
echo "</tr><tr>";
for($i=0; $i< (6*7); $i++){ // Tablle aufbauen
if (($i%7)==0){ // wenn i ein Teiler von 7 ist dann wird eine neue Zeile angefangen
echo "</tr>\n<tr>\n";
}
// wenn der Tag größer ist als die Zählvariable oder der Monat des "Zeigers" ungleich des anzuzeigenden Monats
if ($i < $datum[wday]-1 || $datum[mon] != $monat){
echo "<td ";
if(($i%7)==0){
echo "class=\"tabelle_links\"";
}else if((($i+1)%7)==0){
echo "class=\"tabelle_rechts2\"";
}else{
echo "class=\"tabelle_rechts\"";
}
echo "> </td>\n";
}else{
echo "<td valign=\"top\" ";
if(($i%7)==0){
echo "class=\"tabelle_links\"";
}else if((($i+1)%7)==0){
echo "class=\"tabelle_rechts2\"";
}else{
echo "class=\"tabelle_rechts\"";
}
echo '><a href="kalender_tagesansicht_public.php?'.$sName.'='.$sID.'&tag='.$datum[mday].'&monat='.$datum[mon].'&jahr='.$datum[year].'&seite=1"><div align="right" style="color:#9db7e3">'.$datum[mday].'</div></a>';
echo termine($datum[mday], $datum[mon], $datum[year], $server, $username, $password, $database);
echo '</td>';
$nextday = $datum[mday]+1;
$start = mktime ( 0, 0, 0, $monat, $nextday, $jahr );
$datum = getdate($start);
}
}
echo "</tr>\n";
?>
NACHTRAG:
da das datumsarray geändert wurde, muss auch der daumswert angepasst werden.
das problem ist, wenn der erste tag auf einen sonntag fällt, dann gibt getadte eine null zurück
das problem daran ist nun, dass ich eins abziehe und somit den wert im ersten schleifendurchlauf unterhalb
der zählvariable habe und damit ein datumswert angezeigt wird. deshalb muss als erstes +7 gerechnet werden.
eigentlich nur +6, aber bei der überprüfung wird ja eins abgezogen.
somit funktioniert der kalender endlich.
danke euch trotzdem
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 95397
Url: https://administrator.de/contentid/95397
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
1 Kommentar
Zitat von @Closed:
NACHTRAG:
da das datumsarray geändert wurde, muss auch der daumswert
angepasst werden.
das problem ist, wenn der erste tag auf einen sonntag fällt,
dann gibt getadte eine null zurück
das problem daran ist nun, dass ich eins abziehe und somit den wert
im ersten schleifendurchlauf unterhalb
der zählvariable habe und damit ein datumswert angezeigt wird.
deshalb muss als erstes +7 gerechnet werden.
eigentlich nur +6, aber bei der überprüfung wird ja eins
abgezogen.
somit funktioniert der kalender endlich.
danke euch trotzdem
NACHTRAG:
da das datumsarray geändert wurde, muss auch der daumswert
angepasst werden.
das problem ist, wenn der erste tag auf einen sonntag fällt,
dann gibt getadte eine null zurück
das problem daran ist nun, dass ich eins abziehe und somit den wert
im ersten schleifendurchlauf unterhalb
der zählvariable habe und damit ein datumswert angezeigt wird.
deshalb muss als erstes +7 gerechnet werden.
eigentlich nur +6, aber bei der überprüfung wird ja eins
abgezogen.
somit funktioniert der kalender endlich.
danke euch trotzdem
Thread closed