Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод даты из базы данных
 
 автор: serjinio   (11.09.2008 в 12:30)   письмо автору
 
 

выбираю из бд дату
SELECT DATE_FORMAT(`p`.`date`, '%d-%m-%Y') AS `dat`

получаю 22.09.2008
как сделать чтобы получить 22 сентября 2008

  Ответить  
 
 автор: Mehelson   (11.09.2008 в 13:21)   письмо автору
 
   для: serjinio   (11.09.2008 в 12:30)
 

можно формат изменить
SELECT DATE_FORMAT(`p`.`date`, '%d-%М-%Y') AS `dat`

и тогда:
<?php
$date 
'22 September 2008';
$m = array("January"=>"января""February"=>"февраля","March"=>"марта","April"=>"апреля""May"=>"мая""June"=>"июня"
"Jule"=>"июля""August"=>"августа","September"=>"сентября""October"=>"октября","November"=>"ноября""December"=>"декабря");
echo 
strtr($date$m);
?>

или как вариант:
<?php
$date 
'22.09.2008';
$m = array("01"=>"января""02"=>"февраля","03"=>"марта","04"=>"апреля""05"=>"мая""06"=>"июня"
"07"=>"июля""08"=>"августа","09"=>"сентября""10"=>"октября","11"=>"ноября""12"=>"декабря");
$d explode('.'$date);
$m strtr($d[1], $m);
echo 
$d[0].' '.$m.' '.$d[2];
?>

  Ответить  
 
 автор: sim5   (11.09.2008 в 16:16)   письмо автору
 
   для: Mehelson   (11.09.2008 в 13:21)
 

А есть ведь возможность: mysql_query("SET @1 = 'января', @2 = 'февраля', ..."). Но как можно, допустим по MONTH(`date`), обратиться к соответствующей установленной переменной?

PS. Значит не "склеить".) Но можно так:
<?
mysql_query
("SET BIG_TABLES = 0");
mysql_query("CREATE TEMPORARY TABLE mth (num INT, name VARCHAR (8))");
mysql_query("INSERT INTO mth VALUES (1, 'января'), (2, 'февраля'),
(3, 'марта'), (4, 'апреля'), (5, 'мая'), (6, 'июня'), (7, 'июля'), (8, 'августа'),
(9,'сентября'), (10,'октября'), (11,'ноября'), (12,'декабря')"
);
$q mysql_query("SELECT CONCAT(DAY(date),' ', 
(SELECT name FROM mth WHERE num = MONTH(date)),' ',
YEAR(date)) AS datestr FROM tbl"
);

  Ответить  
 
 автор: serjinio   (11.09.2008 в 20:54)   письмо автору
 
   для: sim5   (11.09.2008 в 16:16)
 

ничего себе, я такого еще нигде не встречал ...а можно.. на пальцах.. прокомментировать код..заранее спасибо

  Ответить  
 
 автор: sim5   (12.09.2008 в 07:23)   письмо автору
 
   для: serjinio   (11.09.2008 в 20:54)
 

А что тут комментировать? Создается временная таблица в памяти, которая заполняется названиями месяцев. По запросу, из поля даты основной таблицы формируется строка: число, плюс название месяца из временной таблицы по номеру месяца из основной таблицы, плюс год. Можете вообще иметь постоянную таблицу с названиями месяцев и обращаться к ней.

  Ответить  
 
 автор: serjinio   (11.09.2008 в 20:52)   письмо автору
 
   для: Mehelson   (11.09.2008 в 13:21)
 

спасибо все заработало

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования