php mktime函数产生奇怪的符号

时间:2013-05-14 00:04:55

标签: php mktime

我正在尝试按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;

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

感谢您的任何建议!

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分: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 all the way through