За последние 24 часа нас посетили 55739 программистов и 1773 робота. Сейчас ищут 2572 программиста ...

Вывод даты "для людей"

Тема в разделе "PHP для новичков", создана пользователем greenzlat, 5 май 2011.

  1. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Делаю запрос из БД, указываю в нем формат даты.
    PHP:
    1. <?php
    2. $a = mysql_query ("SELECT *, DATE_FORMAT(date,'%d-%m-%Y %H:%i') AS date FROM table",$db);
    3. while ($a= mysql_fetch_array ($a))
    4. {
    5. echo $a ['title']
    6. $a ['date'] = $date_old;
    7. function russian_date(){
    8. $date=explode(".", $date_old);
    9. switch ($date[1]){
    10. case 1: $m='января'; break;
    11. case 2: $m='февраля'; break;
    12. case 3: $m='марта'; break;
    13. case 4: $m='апреля'; break;
    14. case 5: $m='мая'; break;
    15. case 6: $m='июня'; break;
    16. case 7: $m='июля'; break;
    17. case 8: $m='августа'; break;
    18. case 9: $m='сентября'; break;
    19. case 10: $m='октября'; break;
    20. case 11: $m='ноября'; break;
    21. case 12: $m='декабря'; break;
    22. }
    23. echo $date[0].'&nbsp;'.$m.'&nbsp;'.$date[2];
    24. }
    25. russian_date();
    26.  } ?>    
    Дату не выводит, выдает такую ошибку:
    Fatal error: Cannot redeclare russian_date() (previously declared in Z:\home\site.off\www\index.php:85) in Z:\home\site.off\www\index.php on line 84
    В 84 строке вот это: function russian_date(){
     
  2. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
    А аргумент функции кто будет передавать?
     
  3. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    блин, ну неужели в гугл транслейт тяжело забить вывод ошибки?

    Сказано же - невозможно переопределить функцию, которая уже определена на index.php:85
     
  4. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    вы функцию напишите до цикла, а не внутри
     
  5. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    PHP:
    1. <?php
    2.  $a = mysql_query ("SELECT *, DATE_FORMAT(date,'%d-%m-%Y %H:%i') AS date FROM table",$db);
    3.  function russian_date(){
    4.  $date=explode(".", $date_old);
    5.  switch ($date[1]){
    6.  case 1: $m='января'; break;
    7.  case 2: $m='февраля'; break;
    8.  case 3: $m='марта'; break;
    9.  case 4: $m='апреля'; break;
    10.  case 5: $m='мая'; break;
    11.  case 6: $m='июня'; break;
    12.  case 7: $m='июля'; break;
    13.  case 8: $m='августа'; break;
    14.  case 9: $m='сентября'; break;
    15.  case 10: $m='октября'; break;
    16.  case 11: $m='ноября'; break;
    17.  case 12: $m='декабря'; break;
    18.  }
    19.  echo $date[0].' '.$m.' '.$date[2];
    20.  }
    21. while ($a= mysql_fetch_array ($a))
    22.  {
    23.  echo $a ['title']
    24.  $a ['date'] = $date_old;
    25.  
    26.  russian_date();
    27.   } ?>
    Перенес до цикла, ошибки нет, но и дату не выводит.
     
  6. asik

    asik Активный пользователь

    С нами с:
    12 июл 2007
    Сообщения:
    211
    Симпатии:
    0
    1) вы выбираете из бд дату в формате: %d-%m-%Y %H:%i
    а бъёте её на масив через разделитель ".": $date=explode(".", $date_old);
    2) переменная $date_old в теле функции неопределена
     
  7. asik

    asik Активный пользователь

    С нами с:
    12 июл 2007
    Сообщения:
    211
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3.   $a = mysql_query ("SELECT *, DATE_FORMAT(date,'%d-%m-%Y %H:%i') AS date FROM table",$db);
    4.   function russian_date($date_old)
    5.   {
    6.   $date=explode(".", $date_old);
    7.   switch ($date[1]){
    8.   case 1: $m='января'; break;
    9.   case 2: $m='февраля'; break;
    10.   case 3: $m='марта'; break;
    11.   case 4: $m='апреля'; break;
    12.   case 5: $m='мая'; break;
    13.   case 6: $m='июня'; break;
    14.   case 7: $m='июля'; break;
    15.   case 8: $m='августа'; break;
    16.   case 9: $m='сентября'; break;
    17.   case 10: $m='октября'; break;
    18.   case 11: $m='ноября'; break;
    19.   case 12: $m='декабря'; break;
    20.   }
    21.   return $date[0].' '.$m.' '.$date[2];
    22.   }
    23.  while ($a= mysql_fetch_array ($a))
    24.   {
    25.   echo $a ['title'];
    26. //  $a ['date'] = $date_old;
    27.   $date_old = $a ['date'];
    28.  
    29.   echo russian_date($date_old);
    30.    } ?>
     
  8. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Спасибо, догнал. все норм работает.