06. februar 2009 - 12:24
#1
Jeg lavede for noget tid siden denne kode:
<?php
$month = date('m');
if ($_GET['month'])
$month += $_GET['month'];
$year = date('Y');
while ($month > 12){
$year++;
$month -= 12;
}
while ($month < 0){
$year--;
$month += 12;
}
?>
<div style="width:230px; margin:0; height: 20px; padding: 10px 0 5px 0;">
<div style="float:left;">
<a style="text-decoration:none;" href="/test.php?month=<?php echo $_GET['month'] - 1; ?>">Forrige måned</a>
</div>
<div style="float:right;">
<a style="text-decoration:none;" href="/test.php?month=<?php echo $_GET['month'] + 1; ?>">Næste måned</a>
</div>
</div>
<?php
$date = mktime(0,0,0,$month,1,$year);
$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);
switch ($month){
case 1: $month_text = "januar"; break;
case 2: $month_text = "februar"; break;
case 3: $month_text = "marts"; break;
case 4: $month_text = "april"; break;
case 5: $month_text = "maj"; break;
case 6: $month_text = "juni"; break;
case 7: $month_text = "juli"; break;
case 8: $month_text = "august"; break;
case 9: $month_text = "september"; break;
case 10: $month_text = "oktober"; break;
case 11: $month_text = "november"; break;
case 12: $month_text = "december"; break;
}
$first_day = mktime(0,0,0,$month, 1, $year);
$day_of_week = date('N', $first_day);
$blank = $day_of_week - 1;
$days_in_month = cal_days_in_month(0, $month, $year);
echo "<table class=\"calendar\">";
echo "<tr><th colspan=\"60\"> ".ucfirst($month_text)." - $year </th></tr>";
echo "<tr><td>Man</td><td>Tir</td><td>Ons</td><td>Tors</td><td>Fre</td><td>Lør</td><td>Søn</td></tr>";
$day_count = 1;
echo "<tr>";
while($blank > 0){
echo "<td></td>";
$blank--;
$day_count++;
}
$day_num = 1;
while ($day_num <= $days_in_month){
if($day_count < 6)
echo "<td style=\"background-color:#aaffaa;\"><a href=\"index.php?ID=".mktime(0,0,0,$month,$day_num,$year)."\">$day_num</a></td>";
else
echo "<td style=\"background-color:#ff8080;\">$day_num</td>";
$day_num++;
$day_count++;
if ($day_count > 7 && $day_num <= $days_in_month){
echo "</tr><tr>";
$day_count = 1;
}
}
while ($day_count > 1 && $day_count <= 7){
echo "<td></td>";
$day_count++;
}
echo "</tr></table>";
?>
Den validerer både XHTML og CSS, og den skulle være let at ændre til at passe netop dine behov.
Jeg har ikke skrevet kommentarer i koden, men det meste giver vist sig selv - du må lige spørge hvis der er noget specifikt, du har problemer med.
06. februar 2009 - 16:21
#3
Det må blive jakobdo, der får point. Tror koden er god til at få ideer fra.
Kunne desværre ikke bruge din kode psychopixi, da den lige meget hvilken måned man er i, viser at den 1. er en mandag :/