1

我正在尝试改编David Walsh的日历脚本。在 David 的显示月历的脚本中,第一周它在月份开始前显示空白,但评论者说您可以使用以下代码显示上个月的日期,即 28 20 30,具体取决于该月的第一天何时落下.

我不会重复链接到的脚本中的所有代码,但主要是替换代码会显示一个我以前从未见过的符号......,“30”。(我已经从他的来源复制了这些符号。它们是在 PD 上方显示 FF 的正方形。)。这是代码。注意 $x、$running_day 和 $daysInThisWeek 只是数字。$calendar 最后得到回显。

//following prints out empty table cells

for($x = 0; $x < $running_day; $x++):
        $calendar.= '<td class="calendar-day-np">&nbsp;</td>';
        $days_in_this_week++;
    endfor;
echo $calendar;

//但是跟随,回显,打印出奇怪的符号:

$daysInLastMonth = date(‘t’,mktime(0,0,0,$month-1,1,$year));

然后当你像上面那样循环时,你会得到一大堆奇怪的符号。

for($x = 0; $x < $running_day; $x++): //this line is same as above
$calendar.= ' . ( ( $daysInLastMonth – ( $runningDay – 1 ) ) + $x ). ';
$daysInThisWeek++;
endfor;
echo $calendar;

有谁知道可能发生了什么,奇怪的符号是什么意思以及如何让它正确显示。

感谢您的任何建议!

4

2 回答 2

2

打开所有错误,你会看到你有错误的引号。错误会像

注意:使用未定义的常量 't' - 假定为 ''t''

这条线

$daysInLastMonth = date(‘t’,mktime(0,0,0,$month-1,1,$year));

一定是

$daysInLastMonth = date('t',mktime(0,0,0,$month-1,1,$year));
于 2013-05-14T00:11:36.827 回答
2

有一个错误:

$daysInLastMonth = date(‘t’,mktime(0,0,0,$month-1,1,$year));

它应该是:

$daysInLastMonth = date('t',mktime(0,0,0,$month-1,1,$year));

要注意这种错误,您必须打开错误:

error_reporting(E_ALL);

有关 PHP 错误的更多信息:http: //php.net/manual/en/function.error-reporting.php

关于字符,它似乎是一个编码问题:

这些链接将帮助您:

http://www.php.net/manual/en/ini.core.php#ini.default-charset

一直到UTF-8

于 2013-05-14T00:21:42.943 回答