PHP日历:将星期日列移到末尾

PHP日历:将星期日列移到末尾,php,calendar,Php,Calendar,这是我从在线教程中获得的日历脚本。它工作正常,但我想将Sunday专栏移到末尾(在Saturday专栏之后): 我认为您需要更改第一天的第一天变量值 $firstday = $thismonth['wday']; //from here //adding $firstday = ($firstday + 6) % 7; //shifting the 1st day 我认为您需要更改第一天的第一天变量值 $firstday = $thismonth['wday']; //from here

这是我从在线教程中获得的日历脚本。它工作正常,但我想将Sunday专栏移到末尾(在Saturday专栏之后):



我认为您需要更改第一天的第一天变量值

$firstday  = $thismonth['wday']; //from here
//adding
$firstday = ($firstday + 6) % 7; //shifting the 1st day

我认为您需要更改第一天的第一天变量值

$firstday  = $thismonth['wday']; //from here
//adding
$firstday = ($firstday + 6) % 7; //shifting the 1st day

修改后的脚本中存在两个问题:

循环从$i=0开始,但直到$i=1才生成
标记。因此,第一列不在任何
标记中

另外,
if($i<$firstday)
需要为true六次才能生成六个空的
标记,以将日期移动到右列

要修复它,请从1开始循环,当星期天是第一天时,设置
$firstday=7

<?php 
if($firstday == 0 ) $firstday = 7;
for ($i=1; $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";

}
?>

修改后的脚本中有两个问题:

循环从$i=0开始,但直到$i=1才生成
标记。因此,第一列不在任何
标记中

另外,
if($i<$firstday)
需要为true六次才能生成六个空的
标记,以将日期移动到右列

要修复它,请从1开始循环,当星期天是第一天时,设置
$firstday=7

<?php 
if($firstday == 0 ) $firstday = 7;
for ($i=1; $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";

}
?>

非常感谢。它与这行+原始脚本一起工作!:-)哈哈,我会的!顺便说一下,原来的简单单循环实际上是误导性的——它生成无效的html!如果你读了我上面贴的编辑过的问题,你就会明白我的意思了。谢谢非常感谢。它与这行+原始脚本一起工作!:-)哈哈,我会的!顺便说一下,原来的简单单循环实际上是误导性的——它生成无效的html!如果你读了我上面贴的编辑过的问题,你就会明白我的意思了。谢谢非常感谢你。我喜欢这个解决方案,因为它对我来说更有意义,因为我不太了解%(模数除法)是如何工作的!顺便说一下,结束if应该是-if($i%7)==0)echo“\n”;否则,它会奇怪地显示。。。谢谢你说得对,我只打印了一列就关闭了标签。哎呀。(我将在我的代码中修复,以防将来有人阅读)没问题,实际上原始的简单单循环是误导性的-它生成无效的html!没问题,实际上原来的简单单循环是误导性的-它生成无效的html!如果你读了我上面贴的编辑过的问题,你就会明白我的意思了。谢谢非常感谢你。我喜欢这个解决方案,因为它对我来说更有意义,因为我不太了解%(模数除法)是如何工作的!顺便说一下,结束if应该是-if($i%7)==0)echo“\n”;否则,它会奇怪地显示。。。谢谢你说得对,我只打印了一列就关闭了标签。哎呀。(我将在我的代码中修复,以防将来有人阅读)没问题,实际上原始的简单单循环是误导性的-它生成无效的html!没问题,实际上原来的简单单循环是误导性的-它生成无效的html!如果你读了我上面贴的编辑过的问题,你就会明白我的意思了。谢谢
<?php 
if($firstday == 0 ) $firstday = 7;
for ($i=1; $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";

}
?>