2013-05-14 4 views
1

Я пытаюсь адаптировать сценарий календаря на David Walsh. В сценарии Дэвида, показывающем ежемесячный календарь, в течение первой недели он показывает пробелы до начала месяца, но комментатор сказал, что вы можете использовать следующий код для отображения дат с предыдущего месяца, то есть 28 20 30 в зависимости от того, когда падает первый день месяца ,Функция php mktime, производящая wierd символы

Я не буду повторять весь код из сценария, связанного с ним, но главное, что код замены отображает символ, который я никогда раньше не видел .., 30 . (Я скопировал эти символы из источника. Это квадраты, которые говорят FF выше PD.). Вот код. Примечание. $ 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)); 

Затем, когда вы Переберите, как описано выше вы получите целый букет из Wierd символов.

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

Кто-нибудь знает, что может происходить, что означают символы wierd и как правильно отображать это.

Спасибо за любые предложения!

ответ

2

Включите все ошибки, и вы увидите, что у вас неправильные кавычки. Ошибки были бы как

Уведомление: Использование неопределенная константа 'т' - предполагается, '' т ''

Эта линия

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

должен быть

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

Wow. Благодарю. Я не знаю, сколько времени мне понадобилось бы, чтобы понять это. Изменена пунктуация, и это исправлено. Спасибо. Отметьте правильность, когда это позволит мне. – user1904273

+0

@ user1904273, используйте error_reporting (-1) и читайте журналы – sectus

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

Смежные вопросы