PHP Kalender
Seven
- php
Hallo, ich habe gerade einen Kalender in PHP mit Monatsübersicht gemacht. Nun habe ich das Problem das er die kompletten Tabellen mit den Daten der einzellnen Tage ausfüllt.
Also wenn z.B der 31. Oktober ein Mittwoch ist mach er automatisch den 1. November als Donnerstag in der selben Tabelle. Ich möchte aber das die übrigen Wochentage des Monats leer bleiben. Doof zu erklären :).
Hier ein Bild
http://img.photobucket.com/albums/v204/tacticalhuGam/kalender.gif
Grüße, Seven
Hallo,
Also wenn z.B der 31. Oktober ein Mittwoch ist mach er automatisch den 1. November als Donnerstag in der selben Tabelle. Ich möchte aber das die übrigen Wochentage des Monats leer bleiben. Doof zu erklären :).
Frag nur den Zeitraum eines Monats ab.
Ich hab sowas mal programmiert, wär aber ziemlich viel Code zum Posten.
Grüße, Matze
Hallo,
Frag nur den Zeitraum eines Monats ab.
Ich hab sowas mal programmiert, wär aber ziemlich viel Code zum Posten.
Vielleicht reicht dir aber auch schon dieser Teil
$monat = mktime(0,0,0,date("m"),1,date("Y"));
$monatstage = date("t", $erstertagimmonat);
Grüße, Matze
Vielleicht reicht dir aber auch schon dieser Teil
$monat = mktime(0,0,0,date("m"),1,date("Y"));
$monatstage = date("t", $erstertagimmonat);
Mhm wer ich mal ausprobieren Momentan sieht meine Seite so aus,
~~~php
<?php
error_reporting('0');
ini_set('display_errors', '0');
if(!isset($_REQUEST['date'])){
$date = mktime(0,0,0,date('m'), date('d'), date('Y'));
} else {
$date = $_REQUEST['date'];
}
$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);
$monat =
$monatstage =
$month_start = mktime(0,0,0,$month, 1, $year);
$month_name = date('m', $month_start);
$month_start_day = date('D', $month_start);
switch($month_start_day){
case "Sun": $offset = 0; break;
case "Mon": $offset = 1; break;
case "Tue": $offset = 2; break;
case "Wed": $offset = 3; break;
case "Thu": $offset = 4; break;
case "Fri": $offset = 5; break;
case "Sat": $offset = 6; break;
}
if($month == 1){
$num_days_last = cal_days_in_month(0, 12, ($year -1));
} else {
$num_days_last = cal_days_in_month(0, ($month -1), $year);
}
$num_days_current = cal_days_in_month(0, $month, $year);
for($i = 1; $i <= $num_days_current; $i++){
$num_days_array[] = $i;
}
for($i = 1; $i <= $num_days_last; $i++){
$num_days_last_array[] = $i;
}
if($offset > 0){
$offset_correction = array_slice($num_days_last_array, -$offset, $offset);
$new_count = array_merge($offset_correction, $num_days_array);
$offset_count = count($offset_correction);
}
else {
$offset_count = 0;
$new_count = $num_days_array;
}
$current_num = count($new_count);
if($current_num > 35){
$num_weeks = 6;
$outset = (42 - $current_num);
} elseif($current_num < 35){
$num_weeks = 5;
$outset = (35 - $current_num);
}
if($current_num == 35){
$num_weeks = 5;
$outset = 0;
}
for($i = 1; $i <= $outset; $i++){
$new_count[] = $i;
}
$weeks = array_chunk($new_count, 7);
$previous_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=";
if($month == 1){
$previous_link .= mktime(0,0,0,12,$day,($year -1));
} else {
$previous_link .= mktime(0,0,0,($month -1),$day,$year);
}
$previous_link .= "\"><< Zurück</a>";
$next_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=";
if($month == 12){
$next_link .= mktime(0,0,0,1,$day,($year + 1));
} else {
$next_link .= mktime(0,0,0,($month +1),$day,$year);
}
$next_link .= "\">Weiter >></a>";
echo "<table border=\"1\" cellpadding=\"6\" cellspacing=\"0\" width=\"800\" class=\"calendar\">\n".
"<tr>\n".
"<td colspan=\"7\">\n".
"<table align=\"center\">\n".
"<tr>\n".
"<td colspan=\"1\" width=\"75\" align=\"left\">$previous_link</td>\n".
"<td colspan=\"2\" width=\"150\" align=\"center\">$month_name $year</td>\n".
"<td colspan=\"1\" width=\"75\" align=\"right\">$next_link</td>\n".
"</tr>\n".
"</table>\n".
"</td>\n".
"<tr>\n".
"<td>Sonntag</td><td>Montag</td><td>Dienstag</td><td>Mittwoch</td><td>Donnerstag</td><td>Freitag</td><td>Samstag</td>\n".
"</tr>\n";
$i = 0;
foreach($weeks AS $week){
echo "<tr>\n";
foreach($week as $d){
if($i < $offset_count){
$day_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month -1,$d,$year)."\">$d</a>";
echo "<td class=\"nonmonthdays\">$day_link</td>\n";
}
if(($i >= $offset_count) && ($i < ($num_weeks * 7) - $outset)){
$day_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month,$d,$year)."\">$d</a>";
if($date == mktime(0,0,0,$month,$d,$year)){
echo "<td class=\"today\">$d</td>\n";
} else {
echo "<td class=\"days\">$day_link</td>\n";
}
} elseif(($outset > 0)) {
if(($i >= ($num_weeks * 7) - $outset)){
$day_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month +1,$d,$year)."\">$d</a>";
echo "<td class=\"nonmonthdays\">$day_link</td>\n";
}
}
$i++;
}
echo "</tr>\n";
}
echo '<tr><td colspan="7" class="days"> </td></tr>';
echo '</table>';
?>
Hallo,
Vielleicht reicht dir aber auch schon dieser Teil
$monat = mktime(0,0,0,date("m"),1,date("Y"));
$monatstage = date("t", $erstertagimmonat);
>
> Mhm wer ich mal ausprobieren Momentan sieht meine Seite so aus,
Wenn du weißt wie viele Tage der Monat hat, gib die Tage doch in einer Schleife aus bis diese Zahl erreicht ist. Danach ebend nichts mehr.
Grüße, Matze