monatskalender rechnet falsch, aber nur bei erster woche
theresa
- php
hi leute!
ich versuch mich gerade an einem kalender, beginne mit der monatsfunktion.
hier der code:
<?
//Monatskalender
if (isset($_GET['monthno'])) $monthno = $_GET['monthno'];
if (isset($_GET['year'])) $year = $_GET['year'];
if (!isset($monthno)) {
$monthno=date(n);
}
if (!isset($year)) {
$year = date(Y);
}
$monthfulltext = date(F, mktime(0, 0, 0, $monthno, 1, $year));
$monthshorttext = date(M, mktime(0, 0, 0, $monthno, 1, $year));
$day_in_mth = date(t, mktime(0, 0, 0, $monthno, 1, $year)) ;
$day_text = date(D, mktime(0, 0, 0, $monthno, 1, $year));
?>
<table bgcolor="#000000" border="0" cellpadding="0" cellspacing="1" width=800>
<tr><td colspan=7 bgcolor=#FFFFFF><? echo $monthfulltext." ".$year ?></td></tr>
<tr>
<td bgcolor=#FFFFFF>Mo</td><td bgcolor=#FFFFFF>Di</td><td bgcolor=#FFFFFF>Mi</td><td bgcolor=#FFFFFF>Do</td><td bgcolor=#FFFFFF>Fr</td><td bgcolor=#FFFFFF>Sa</td>
<td bgcolor=#FFFFFF>So</td>
</tr>
<tr>
<?
$day_of_wk = date(w, mktime(0, 0, 0, $monthno, 1, $year));
if ($day_of_wk <> 0){
for ($i=0; $i<$day_of_wk; $i++)
{ echo "<td bgcolor=#FFFFFF> </td>"; }
}
for ($date_of_mth = 1; $date_of_mth <= $day_in_mth; $date_of_mth++) {
//wenn tag ist montag, zeile beginnen
if ($day_of_wk = 0){
for ($i=0; $i<$day_of_wk; $i++);
{ echo "<tr>"; }
}
$day_text = date(D, mktime(0, 0, 0, $monthno, $date_of_mth, $year));
$date_no = date(j, mktime(0, 0, 0, $monthno, $date_of_mth, $year));
$day_of_wk = date(w, mktime(0, 0, 0, $monthno, $date_of_mth, $year));
//Wenn aktueller tag gleich heutiger tag
if ( $date_no == date(j) && $monthno == date(n) )
{ echo "<td bgcolor=#CCCCCC>".$date_no."</td>"; }
//Alle restlichen Tage des monats
else{
echo "<td bgcolor=#FFFFFF>".$date_no."</td>"; }
//Wenn Sonntag, dann tabelle abschließen
If ( $day_of_wk == 0 ) { echo "</tr>"; }
//wenn tag alles unter samstag UND monatstag noch existent
If ( $day_of_wk < 6 && $date_of_mth == $day_in_mth ) {
for ( $i = $day_of_wk ; $i < 6; $i++ ) {
echo "<td bgcolor=#FFFFFF> </td>"; }
echo "</tr>";
}
}
?>
</table>
und das ergebnis:
<table bgcolor="#000000" border="0" cellpadding="0" cellspacing="1" width=800>
<tr><td colspan=7 bgcolor=#FFFFFF>November 2005</td></tr>
<tr>
<td bgcolor=#FFFFFF>Mo</td><td bgcolor=#FFFFFF>Di</td><td bgcolor=#FFFFFF>Mi</td><td bgcolor=#FFFFFF>Do</td><td bgcolor=#FFFFFF>Fr</td><td bgcolor=#FFFFFF>Sa</td>
<td bgcolor=#FFFFFF>So</td>
</tr>
<tr>
<td bgcolor=#FFFFFF> </td><td bgcolor=#FFFFFF> </td><td bgcolor=#FFFFFF>1</td><td bgcolor=#FFFFFF>2</td><td bgcolor=#FFFFFF>3</td><td bgcolor=#FFFFFF>4</td><td bgcolor=#FFFFFF>5</td><td bgcolor=#FFFFFF>6</td></tr><td bgcolor=#CCCCCC>7</td><td bgcolor=#FFFFFF>8</td><td bgcolor=#FFFFFF>9</td><td bgcolor=#FFFFFF>10</td><td bgcolor=#FFFFFF>11</td><td bgcolor=#FFFFFF>12</td><td bgcolor=#FFFFFF>13</td></tr><td bgcolor=#FFFFFF>14</td><td bgcolor=#FFFFFF>15</td><td bgcolor=#FFFFFF>16</td><td bgcolor=#FFFFFF>17</td><td bgcolor=#FFFFFF>18</td><td bgcolor=#FFFFFF>19</td><td bgcolor=#FFFFFF>20</td></tr><td bgcolor=#FFFFFF>21</td><td bgcolor=#FFFFFF>22</td><td bgcolor=#FFFFFF>23</td><td bgcolor=#FFFFFF>24</td><td bgcolor=#FFFFFF>25</td><td bgcolor=#FFFFFF>26</td><td bgcolor=#FFFFFF>27</td></tr><td bgcolor=#FFFFFF>28</td><td bgcolor=#FFFFFF>29</td><td bgcolor=#FFFFFF>30</td><td bgcolor=#FFFFFF> </td><td bgcolor=#FFFFFF> </td><td bgcolor=#FFFFFF> </td></tr></table>
kann mir das jemand erklären? ich hab irgendwo was mit sonntag als wochenbeginn verpatzt, aber ich sehs einfach nicht, verflixt...
DANKE!!!
die theresa
hi,
$monthfulltext = date(F, mktime(0, 0, 0, $monthno, 1, $year));
$monthshorttext = date(M, mktime(0, 0, 0, $monthno, 1, $year));
$day_in_mth = date(t, mktime(0, 0, 0, $monthno, 1, $year)) ;
$day_text = date(D, mktime(0, 0, 0, $monthno, 1, $year));
Zahlt dir irgendjemand eine Provision für jedes Mal, wo du
mktime(0, 0, 0, $monthno, 1, $year)
aufrufst?
Andernfalls wäre es vielleicht nicht verkehrt, wenn du dir das Ergebnis dieses Aufrufs _einmal_ in einer Variablen ablegst, und diese dann als Parameter für die folgenden date()-Aufrufe benutzt.
und das ergebnis: [...]
kann mir das jemand erklären?
Nein.
Findest du nicht, dass Hinklatschen des Codes und eines Tabellenwustes als "Problembeschreibung" ein wenig dürftig ist?
Also, neuer Versuch - bitte mit Erklärung, was dein Code machen soll, und was stattdessen geschieht.
gruß,
wahsaga