Форум русской поддержки Joomla!® CMS
23.07.2017, 12:55:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

sql запрос для вывода правильной даты

 (Прочитано 100 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Frics
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 32


« : 27.06.2017, 15:02:07 »

Всем привет,
Установил компонент Plotalot для вывода графика на сайт с использованием данных из базы. Компонент требует чтобы данные из базы выводились в числовом выражении поэтому сделал такой запрос:
SELECT (Select UNIX_TIMESTAMP(date)), input1  FROM `XXX` WHERE date > DATE_ADD(NOW(), INTERVAL -30 DAY)
График отображается нормально, но вот время отображается на 5 часов меньше. допустим в базе 2017-06-27 14:28:05 а на графике 2017-06-27 09:28:05
Подскажите как сделать правильный запрос к базе чтобы выводилось правильная дата.
Записан
SeBun
Практически профи
*******

Репутация: +184/-5
Offline Offline

Пол: Мужской
Сообщений: 3132


@SeBun48


« Ответ #1 : 27.06.2017, 15:15:45 »

Какой часовой пояс там задан?

Скорее всего копать в сторону функции перевода времени из таймштампа.
Записан
SmokerMan
Профи
********

Репутация: +708/-26
Offline Offline

Пол: Мужской
Сообщений: 5363



« Ответ #2 : 27.06.2017, 15:16:07 »

Подскажите как сделать правильный запрос к базе чтобы выводилось правильная дата.
запрос тут не причем, а надо определиться с временной зоной
если в базе время храниться в UTC, то вывести его с учетом временной зоны пользователя можно например так
Код:
<?php echo JHtml::date('тут вермя', 'd.m.Y H:i'); ?>
Записан
Frics
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 32


« Ответ #3 : 02.07.2017, 18:51:10 »

 Я не силен в php, поэтому помогите сделать запрос к базе чтобы она прибавляла 5 часов к получаемому времени.
Записан
SeBun
Практически профи
*******

Репутация: +184/-5
Offline Offline

Пол: Мужской
Сообщений: 3132


@SeBun48


« Ответ #4 : 04.07.2017, 15:17:22 »

У вас запрос:
Код
SELECT (SELECT UNIX_TIMESTAMP(date)), input1  FROM `XXX` WHERE date > DATE_ADD(NOW(), INTERVAL -30 DAY)

Если нужно этот запрос сделать так, что бы интервал был не в днях, а в часах, пишем так:

Код
SELECT (SELECT UNIX_TIMESTAMP(date)), input1  FROM `XXX` WHERE date > DATE_ADD(NOW(), INTRVAL 5 HOUR)

Если надо обновить дату в базе, то примерно так:

Код
UPDATE `XXX` SET newdate = date_add(SELECT UNIX_TIMESTAMP(date),  INTRVAL 5 HOUR)

Статья про часовые пояса.
« Последнее редактирование: 04.07.2017, 16:30:33 от SeBun » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet