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

Форум MySQL

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

 

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

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

тема: Вывод даты sql
 
 автор: arsen37   (04.09.2009 в 17:14)   письмо автору
 
 

Здравствуйте!

$ask_puttime = mysql_query("SELECT DATE_FORMAT(puttime, '%d.%m.%Y в %k:%i') FROM table_name");
$ask = mysql_fetch_row($ask_puttime);
$puttime = $ask[0];

Выводит дату и время в правильном формате, но всем сообщениям присваивает 24.08.2009 в 9:29. В чем может быть проблема?

  Ответить  
 
 автор: root   (04.09.2009 в 17:22)   письмо автору
 
   для: arsen37   (04.09.2009 в 17:14)
 

даты точно разные?

  Ответить  
 
 автор: arsen37   (05.09.2009 в 01:04)   письмо автору
 
   для: root   (04.09.2009 в 17:22)
 

Даты точно разные. Вот нашел на форуме функцию, которая отображает время правильно

$time="2004-07-11 11:16:34";
$time=strtotime($time);
echo strftime("%d.%m.%Y %H:%M",$time);

  Ответить  
 
 автор: root   (05.09.2009 в 01:08)   письмо автору
 
   для: arsen37   (05.09.2009 в 01:04)
 

неужели эта функция решила проблему?

  Ответить  
 
 автор: arsen37   (05.09.2009 в 01:18)   письмо автору
 
   для: root   (05.09.2009 в 01:08)
 

Ну только заместо конкертной даты поставил строку из бд. Но, собственно говоря, не из-за самой функции весь сыр-бор. Просто я хотел в гостевой переделать формат даты sql в более читабельный + добавить функцию изменения номеров месяцов на их названия. И как по мне, такую функцию легче сделать, если дату перевернуть через sql запрос.

  Ответить  
 
 автор: root   (05.09.2009 в 01:23)   письмо автору
 
   для: arsen37   (05.09.2009 в 01:18)
 

Вы выше указанным запросом сколько записей вообще вытянуть хотите?
Если больше одной то где цикл?
Я не вижу ничего такого, что бы выводило одну и ту же дату

  Ответить  
 
 автор: arsen37   (05.09.2009 в 01:30)   письмо автору
 
   для: root   (05.09.2009 в 01:23)
 

Хочу форматировать дату для всех сообщений данной таблицы.

Вот цикл:

// Выводим сообщения
if(mysql_num_rows($result) > 0)
{
while($guest=mysql_fetch_array($result))
{
// Вытаскиваем переменные из базы данных
$name = trim($guest['name']);
$email = trim($guest['email']);
$text = trim($guest['text']);

$ask_puttime = mysql_query("SELECT DATE_FORMAT(puttime, '%d.%m.%Y в %k:%i') FROM table_name");
$ask = mysql_fetch_row($ask_puttime);
$puttime = $ask[0];

// А потом в коде страницы
echo $puttime;
}
}

  Ответить  
 
 автор: arsen37   (05.09.2009 в 02:05)   письмо автору
 
   для: arsen37   (05.09.2009 в 01:30)
 

Кажеться, начало работать, вот так

while($guest=mysql_fetch_array($result))
{
// Вытаскиваем переменные из базы данных
$name = trim($guest['name']);
$email = trim($guest['email']);
$text = trim($guest['text']);
$puttime = trim($guest['puttime']);

// $ask_puttime = mysql_query("SELECT DATE_FORMAT(puttime, '%d.%m.%Y в %k:%i')
FROM table_name WHERE puttime='$puttime' ");
$ask = mysql_fetch_row($ask_puttime);
$when = $ask[0];

// На странице
echo $when;
}

  Ответить  
 
 автор: arsen37   (05.09.2009 в 03:04)   письмо автору
 
   для: arsen37   (05.09.2009 в 02:05)
 

К коду добавляю функцию перевода месяцев на русский, может кому пригодится

$month_trans = array(
"Jan"=>"января",
"Feb"=>"февраля",
"Mar"=>"марта",
"Apr"=>"апреля",
"May"=>"мая",
"Jun"=>"июня",
"Jul"=>"июля",
"Aug"=>"августа",
"Sep" =>"сентября",
"Oct" =>"октября",
"Nov" =>"ноября",
"Dec"=>"декабря"
);

echo strtr($when, $month_trans);


Спасибо за то, что уделили время моему вопросу.

  Ответить  
 
 автор: Trianon   (05.09.2009 в 09:55)   письмо автору
 
   для: arsen37   (05.09.2009 в 02:05)
 

Божечки...
Зачем кучу отдельных запросов, когда ту же дату можно получить в исходном запросе со всеми потрохами.

  Ответить  
 
 автор: cheops   (04.09.2009 в 17:42)   письмо автору
 
   для: arsen37   (04.09.2009 в 17:14)
 

У вас не используется конструкция WHERE или циклическое извлечение даты - похоже вы просто дергаете первую попавшуюся запись в таблице.

  Ответить  
 
 автор: arsen37   (05.09.2009 в 01:14)   письмо автору
 
   для: cheops   (04.09.2009 в 17:42)
 

Думаю, Вы правы. А не подскажите, к чему можно сделать привязку where?

  Ответить  
 
 автор: cheops   (05.09.2009 в 11:06)   письмо автору
 
   для: arsen37   (05.09.2009 в 01:14)
 

Хм... нужно контекст знать, где выполняется этот запрос?

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

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