Я работаю над сайтом, использующим PHP-скрипт для отображения информации, отформатированной определенным образом из базы данных MySQL. Я хочу, чтобы значения даты из базы данных (которые отформатированы как ГГГГ-ММ-ДД) отображались как Месяц ГГГГ. Возможно, недостаточно эффективный код, который я использую для отображения месяцев в виде слов:
foreach($monthstart as $monthnext)
{
preg_match("/[[0-9][0-9]]*/", $monthnext, $startmonthfull);
}
echo "<b>Duration: </b>";
foreach($startmonthfull as $which)
{
if($which == 01)
{
echo "January ";
}
elseif($which == 02)
{
echo "February ";
}
elseif($which == 03)
{
echo "March ";
}
elseif($which == 04)
{
echo "April ";
}
elseif($which == 05)
{
echo "May ";
}
elseif($which == 06)
{
echo "June ";
}
elseif($which == 07)
{
echo "July ";
}
elseif($which == 08)
{
echo "August ";
}
elseif($which == 09)
{
echo "September ";
}
elseif($which == 10)
{
echo "October ";
}
elseif($which == 11)
{
echo "November ";
}
elseif($which == 12)
{
echo "December ";
}
}
foreach($year as $printyear)
{
echo $printyear;
}
Этот код отображает месяц и год для первой части. Это отлично отображается на веб-странице, если месяц не август или сентябрь. Если месяц август или сентябрь, для этой части ничего не печатается, поэтому вместо «август 2005» вы получите «2005».
Августовские и сентябрьские операторы elseif отформатированы (насколько я могу судить) точно так же, как и другие, поэтому я понятия не имею, почему эти значения не печатаются. Если я просто прошу его напечатать значение «$», оно будет напечатано как 08 или 09, и значения будут выглядеть правильно в базе данных. Я действительно надеюсь, что есть кое-что простое, я пропускаю, что кто-то быстро укажет, потому что я довольно долго бился головой об стену с этой проблемой.
(Я не уверен, имеет ли это какое-то значение, но я использую плагин Jumi в Joomla, который позволяет пользователям добавлять пользовательский код на страницу Joomla для разработки этого раздела веб-сайта.)
РЕДАКТИРОВАТЬ: Я только что удалил 0 из 08 и 09, и теперь они все отображаются правильно. Так что я думаю теперь вопрос в том, почему это решило проблему, когда в проверяемой переменной значения 08 и 09?
Кроме того, извините за то, что решил это так скоро после публикации вопроса.