Ceci est le script de calendrier que j'ai obtenu à partir d'un tutoriel en ligne. Il fonctionne très bien, mais je veux déplacer la colonne de dimanche à la fin (après la colonne du samedi):Calendrier PHP: déplacer la colonne du dimanche à la fin
<?php
if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
$month_current = $_REQUEST["month"];
$year_current = $_REQUEST["year"];
$prev_year = $year_current;
$next_year = $year_current;
$month_previous = $month_current-1;
$month_next = $month_current+1;
if ($month_previous == 0)
{
$month_previous = 12;
$prev_year = $year_current - 1;
}
if ($month_next == 13)
{
$month_next = 1;
$next_year = $year_current + 1;
}
$timestamp = mktime(0,0,0,$month_current,1,$year_current);
$lastdate = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$firstday = $thismonth['wday'];
?>
<?php
for ($i=0; $i<($lastdate + $firstday); $i++)
{
if(($i % 7) == 0) echo "<tr>\n";
if($i < $firstday) echo "<td></td>\n";
else echo "<td align='center' valign='middle' height='20px'>". ($i - $firstday + 1) . "</td>\n";
if(($i % 7) == 6) echo "</tr>\n";
}
?>
J'ai essayé de changer le code dans ceci:
<?php
for ($i=0; $i<($lastdate + $firstday); $i++)
{
if(($i % 7) == 1) echo "<tr>\n";
# if $i less than the first day (1), don't print the value of $i
if($i < $firstday) echo "<td></td>\n";
# print the value of $i
else echo "<td align='center' valign='middle' height='20px'>". ($i - $firstday + 1) . "</td>\n";
if(($i % 7) == 0) echo "</tr>\n";
}
?>
Il ne puis pas afficher correctement dans la colonne lorsque le premier jour commence à partir du dimanche. Par exemple: http://ec-ener.eu/dump/index.php?month=8&year=2010
Comment puis-je résoudre ce problème? Alternativement, comment puis-je changer le script original afin que je puisse passer dimanche à la fin des colonnes?
p.s. Je viens aussi découvert que le code d'origine semble avoir un problème de bits/bug, si vous vérifiez le code html - tr et td - il génère,
<tr>
<td align='center' valign='middle' height='20px'>30</td>
<td align='center' valign='middle' height='20px'>31</td>
</table>
</td>
</tr>
il a la table de clôture dans le et il n'y a qu'un fermeture mais pas d'ouverture. Je crois que la boucle simple unique originale génère un html invalide! puis-je le réparer? Merci!
merci beaucoup. ça marche avec cette ligne + le script original! :-) – laukok
lol je le ferai! en passant, en fait, la simple boucle simple d'origine est trompeuse - il génère un code HTML invalide! Vous saurez ce que je veux dire si vous lisez la question éditée que j'ai posté ci-dessus. Merci! – laukok