Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Срочно нужна помощь! Дата с русским месяцем

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
NeoGod
Отправлено: 10 Апреля, 2011 - 16:00:08
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Всем привет.
Помогите решить задачу.
Надо сделать вывод даты с русскими месяцами, без использования функции date()

<?
function russian_date(){
$date = explode(".",$data_oformleniya);

switch ($date[1]){

case 1: $m='января'; break;
case 2: $m='февраля'; break;
case 3: $m='марта'; break;
case 4: $m='апреля'; break;
case 5: $m='мая'; break;
case 6: $m='июня'; break;
case 7: $m='июля'; break;
case 8: $m='августа'; break;
case 9: $m='сентября'; break;
case 10: $m='октября'; break;
case 11: $m='ноября'; break;
case 12: $m='декабря'; break;
}

echo $date[0].'&nbsp;'.$m.'&nbsp;'.$date[2];
}
russian_date();
?>
код не работает
В БД MySQL дата записана в ячейке с типом char в формате 10.04.2011
 
 Top
Саныч Модератор
Отправлено: 10 Апреля, 2011 - 16:08:50
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




естественно не работает, $date вы откуда берете?


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Fobius
Отправлено: 10 Апреля, 2011 - 16:19:27
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Нояб. 2009  


Помог: 1 раз(а)




'04' и 4 - разные велечины...
$date = '04';
$date == 4; // false
(int)$date == 4 // true
 
 Top
vsll
Отправлено: 10 Апреля, 2011 - 16:35:57
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1. function russian_date ($data, $year){
  2. $res = "";
  3. $month = array(1 => 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
  4. $date = explode("." , $data_oformleniya);
  5. if ($year == 1) {$res .= $date[0]; $res .= " ".$month[preg_replace("/[0]/","",$date[1])]; $res .= " ".$date[2];}
  6. return $res;
  7. }
  8.  
  9. russian_date($data, 1)
 
 Top
Саныч Модератор
Отправлено: 10 Апреля, 2011 - 17:46:31
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Vasiliya, таже ошибка... $data_oformleniya ???


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
vsll
Отправлено: 10 Апреля, 2011 - 17:58:28
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




NeoGod пишет:
В БД MySQL дата записана в ячейке с типом char в формате 10.04.2011

наверно это и есть data_oformleniya

не дописала чуть чуть
PHP:
скопировать код в буфер обмена
  1. function russian_date ($data_oformleniya, $year){
  2. $res = "";
  3. $month = array(1 => 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
  4. $date = explode("." , $data_oformleniya);
  5. if ($year == 1) {$res .= $date[0]; $res .= " ".$month[preg_replace("/[0]/","",$date[1])]; $res .= " ".$date[2];}
  6. return $res;
  7. }
  8.  
  9. russian_date($data_oformleniya, 1)
 
 Top
NeoGod
Отправлено: 10 Апреля, 2011 - 18:01:31
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Задача решена. Всем спасибо

$monthes = array(1 => 'января', 'февраля', 'марта', 'апреля');
echo date('j') .' '. $monthes[date('n')] .' '. date('Y');


В случаи, если дата уже дана в формате ДД.ММ.ГГГГ:
function russian_date($date)
{
$monthes = array(1 => 'января', 'февраля', 'марта', 'апреля');

list($day, $month, $year) = explode('.', $date);

return $day .' '. $monthes[(int)$month] .' '. $year;
}

echo russian_date('10.04.2011');
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB